glob_variation.phpt 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. --TEST--
  2. Test glob() function: usage variations
  3. --SKIPIF--
  4. <?php
  5. if (substr(PHP_OS, 0, 3) == 'WIN') {
  6. die('skip.. Not valid for Windows');
  7. }
  8. if (!defined('GLOB_BRACE')) {
  9. die('skip this test requires GLOB_BRACE support');
  10. }
  11. ?>
  12. --FILE--
  13. <?php
  14. echo "*** Testing glob() : usage variations ***\n";
  15. $file_path = __DIR__;
  16. // temp dir created
  17. mkdir("$file_path/glob_variation");
  18. mkdir("$file_path/glob_variation/wonder");
  19. // temp files created
  20. $fp = fopen("$file_path/glob_variation/wonder12345", "w");
  21. fclose($fp);
  22. $fp = fopen("$file_path/glob_variation/wonder;123456", "w");
  23. fclose($fp);
  24. $patterns = array (
  25. "$file_path/glob_variation/*der*",
  26. "$file_path/glob_variation/?onder*",
  27. "$file_path/glob_variation/w*der?*",
  28. "$file_path/glob_variation/*der5",
  29. "$file_path/glob_variation/??onder*",
  30. "$file_path/glob_variation/***der***",
  31. "$file_path/glob_variation/++onder*",
  32. "$file_path/glob_variation/WONDER5\0",
  33. '$file_path/glob_variation/wonder5',
  34. "$file_path/glob_variation/?wonder?",
  35. "$file_path/glob_variation/wonder?",
  36. TRUE // boolean true
  37. );
  38. $counter = 1;
  39. /* loop through $patterns to match each $pattern with the files created
  40. using glob() */
  41. foreach($patterns as $pattern) {
  42. echo "\n-- Iteration $counter --\n";
  43. try {
  44. var_dump( glob($pattern) ); // default arguments
  45. var_dump( glob($pattern, GLOB_MARK) );
  46. var_dump( glob($pattern, GLOB_NOSORT) );
  47. var_dump( glob($pattern, GLOB_NOCHECK) );
  48. var_dump( glob($pattern, GLOB_NOESCAPE) );
  49. var_dump( glob($pattern, GLOB_ERR) );
  50. } catch (Error $e) {
  51. echo $e->getMessage(), "\n";
  52. }
  53. $counter++;
  54. }
  55. echo "\n*** Testing glob() with pattern within braces ***\n";
  56. var_dump( glob("$file_path/glob_variation/*{5}", GLOB_BRACE) );
  57. // delete temp files and dir
  58. unlink("$file_path/glob_variation/wonder12345");
  59. unlink("$file_path/glob_variation/wonder;123456");
  60. rmdir("$file_path/glob_variation/wonder");
  61. rmdir("$file_path/glob_variation");
  62. echo "\n*** Testing glob() on directories ***\n";
  63. // temp dir created to check for pattern matching the sub dir created in it
  64. mkdir("$file_path/glob_variation/wonder1/wonder2", 0777, true);
  65. $counter = 1;
  66. /* loop through $patterns to match each $pattern with the directories created
  67. using glob() */
  68. foreach($patterns as $pattern) {
  69. echo "-- Iteration $counter --\n";
  70. try {
  71. var_dump( glob($pattern, GLOB_ONLYDIR) );
  72. } catch (Error $e) {
  73. echo $e->getMessage(), "\n";
  74. }
  75. $counter++;
  76. }
  77. echo "Done\n";
  78. ?>
  79. --CLEAN--
  80. <?php
  81. $file_path = __DIR__;
  82. rmdir("$file_path/glob_variation/wonder1/wonder2");
  83. rmdir("$file_path/glob_variation/wonder1/");
  84. rmdir("$file_path/glob_variation/");
  85. ?>
  86. --EXPECTF--
  87. *** Testing glob() : usage variations ***
  88. -- Iteration 1 --
  89. array(3) {
  90. [0]=>
  91. string(%d) "%s/glob_variation/wonder"
  92. [1]=>
  93. string(%d) "%s/glob_variation/wonder12345"
  94. [2]=>
  95. string(%d) "%s/glob_variation/wonder;123456"
  96. }
  97. array(3) {
  98. [0]=>
  99. string(%d) "%s/glob_variation/wonder/"
  100. [1]=>
  101. string(%d) "%s/glob_variation/wonder12345"
  102. [2]=>
  103. string(%d) "%s/glob_variation/wonder;123456"
  104. }
  105. array(3) {
  106. [0]=>
  107. string(%d) "%s"
  108. [1]=>
  109. string(%d) "%s"
  110. [2]=>
  111. string(%d) "%s"
  112. }
  113. array(3) {
  114. [0]=>
  115. string(%d) "%s/glob_variation/wonder"
  116. [1]=>
  117. string(%d) "%s/glob_variation/wonder12345"
  118. [2]=>
  119. string(%d) "%s/glob_variation/wonder;123456"
  120. }
  121. array(3) {
  122. [0]=>
  123. string(%d) "%s/glob_variation/wonder"
  124. [1]=>
  125. string(%d) "%s/glob_variation/wonder12345"
  126. [2]=>
  127. string(%d) "%s/glob_variation/wonder;123456"
  128. }
  129. array(3) {
  130. [0]=>
  131. string(%d) "%s/glob_variation/wonder"
  132. [1]=>
  133. string(%d) "%s/glob_variation/wonder12345"
  134. [2]=>
  135. string(%d) "%s/glob_variation/wonder;123456"
  136. }
  137. -- Iteration 2 --
  138. array(3) {
  139. [0]=>
  140. string(%d) "%s/glob_variation/wonder"
  141. [1]=>
  142. string(%d) "%s/glob_variation/wonder12345"
  143. [2]=>
  144. string(%d) "%s/glob_variation/wonder;123456"
  145. }
  146. array(3) {
  147. [0]=>
  148. string(%d) "%s/glob_variation/wonder/"
  149. [1]=>
  150. string(%d) "%s/glob_variation/wonder12345"
  151. [2]=>
  152. string(%d) "%s/glob_variation/wonder;123456"
  153. }
  154. array(3) {
  155. [0]=>
  156. string(%d) "%s"
  157. [1]=>
  158. string(%d) "%s"
  159. [2]=>
  160. string(%d) "%s"
  161. }
  162. array(3) {
  163. [0]=>
  164. string(%d) "%s/glob_variation/wonder"
  165. [1]=>
  166. string(%d) "%s/glob_variation/wonder12345"
  167. [2]=>
  168. string(%d) "%s/glob_variation/wonder;123456"
  169. }
  170. array(3) {
  171. [0]=>
  172. string(%d) "%s/glob_variation/wonder"
  173. [1]=>
  174. string(%d) "%s/glob_variation/wonder12345"
  175. [2]=>
  176. string(%d) "%s/glob_variation/wonder;123456"
  177. }
  178. array(3) {
  179. [0]=>
  180. string(%d) "%s/glob_variation/wonder"
  181. [1]=>
  182. string(%d) "%s/glob_variation/wonder12345"
  183. [2]=>
  184. string(%d) "%s/glob_variation/wonder;123456"
  185. }
  186. -- Iteration 3 --
  187. array(2) {
  188. [0]=>
  189. string(%d) "%s/glob_variation/wonder12345"
  190. [1]=>
  191. string(%d) "%s/glob_variation/wonder;123456"
  192. }
  193. array(2) {
  194. [0]=>
  195. string(%d) "%s/glob_variation/wonder12345"
  196. [1]=>
  197. string(%d) "%s/glob_variation/wonder;123456"
  198. }
  199. array(2) {
  200. [0]=>
  201. string(%d) "%s"
  202. [1]=>
  203. string(%d) "%s"
  204. }
  205. array(2) {
  206. [0]=>
  207. string(%d) "%s/glob_variation/wonder12345"
  208. [1]=>
  209. string(%d) "%s/glob_variation/wonder;123456"
  210. }
  211. array(2) {
  212. [0]=>
  213. string(%d) "%s/glob_variation/wonder12345"
  214. [1]=>
  215. string(%d) "%s/glob_variation/wonder;123456"
  216. }
  217. array(2) {
  218. [0]=>
  219. string(%d) "%s/glob_variation/wonder12345"
  220. [1]=>
  221. string(%d) "%s/glob_variation/wonder;123456"
  222. }
  223. -- Iteration 4 --
  224. array(0) {
  225. }
  226. array(0) {
  227. }
  228. array(0) {
  229. }
  230. array(1) {
  231. [0]=>
  232. string(%d) "%s/glob_variation/*der5"
  233. }
  234. array(0) {
  235. }
  236. array(0) {
  237. }
  238. -- Iteration 5 --
  239. array(0) {
  240. }
  241. array(0) {
  242. }
  243. array(0) {
  244. }
  245. array(1) {
  246. [0]=>
  247. string(%d) "%s/glob_variation/??onder*"
  248. }
  249. array(0) {
  250. }
  251. array(0) {
  252. }
  253. -- Iteration 6 --
  254. array(3) {
  255. [0]=>
  256. string(%d) "%s/glob_variation/wonder"
  257. [1]=>
  258. string(%d) "%s/glob_variation/wonder12345"
  259. [2]=>
  260. string(%d) "%s/glob_variation/wonder;123456"
  261. }
  262. array(3) {
  263. [0]=>
  264. string(%d) "%s/glob_variation/wonder/"
  265. [1]=>
  266. string(%d) "%s/glob_variation/wonder12345"
  267. [2]=>
  268. string(%d) "%s/glob_variation/wonder;123456"
  269. }
  270. array(3) {
  271. [0]=>
  272. string(%d) "%s"
  273. [1]=>
  274. string(%d) "%s"
  275. [2]=>
  276. string(%d) "%s"
  277. }
  278. array(3) {
  279. [0]=>
  280. string(%d) "%s/glob_variation/wonder"
  281. [1]=>
  282. string(%d) "%s/glob_variation/wonder12345"
  283. [2]=>
  284. string(%d) "%s/glob_variation/wonder;123456"
  285. }
  286. array(3) {
  287. [0]=>
  288. string(%d) "%s/glob_variation/wonder"
  289. [1]=>
  290. string(%d) "%s/glob_variation/wonder12345"
  291. [2]=>
  292. string(%d) "%s/glob_variation/wonder;123456"
  293. }
  294. array(3) {
  295. [0]=>
  296. string(%d) "%s/glob_variation/wonder"
  297. [1]=>
  298. string(%d) "%s/glob_variation/wonder12345"
  299. [2]=>
  300. string(%d) "%s/glob_variation/wonder;123456"
  301. }
  302. -- Iteration 7 --
  303. array(0) {
  304. }
  305. array(0) {
  306. }
  307. array(0) {
  308. }
  309. array(1) {
  310. [0]=>
  311. string(%d) "%s/glob_variation/++onder*"
  312. }
  313. array(0) {
  314. }
  315. array(0) {
  316. }
  317. -- Iteration 8 --
  318. glob(): Argument #1 ($pattern) must not contain any null bytes
  319. -- Iteration 9 --
  320. array(0) {
  321. }
  322. array(0) {
  323. }
  324. array(0) {
  325. }
  326. array(1) {
  327. [0]=>
  328. string(%d) "$file_path/glob_variation/wonder5"
  329. }
  330. array(0) {
  331. }
  332. array(0) {
  333. }
  334. -- Iteration 10 --
  335. array(0) {
  336. }
  337. array(0) {
  338. }
  339. array(0) {
  340. }
  341. array(1) {
  342. [0]=>
  343. string(%d) "%s/glob_variation/?wonder?"
  344. }
  345. array(0) {
  346. }
  347. array(0) {
  348. }
  349. -- Iteration 11 --
  350. array(0) {
  351. }
  352. array(0) {
  353. }
  354. array(0) {
  355. }
  356. array(1) {
  357. [0]=>
  358. string(%d) "%s/glob_variation/wonder?"
  359. }
  360. array(0) {
  361. }
  362. array(0) {
  363. }
  364. -- Iteration 12 --
  365. array(0) {
  366. }
  367. array(0) {
  368. }
  369. array(0) {
  370. }
  371. array(1) {
  372. [0]=>
  373. string(%d) "1"
  374. }
  375. array(0) {
  376. }
  377. array(0) {
  378. }
  379. *** Testing glob() with pattern within braces ***
  380. array(1) {
  381. [0]=>
  382. string(%d) "%s/glob_variation/wonder12345"
  383. }
  384. *** Testing glob() on directories ***
  385. -- Iteration 1 --
  386. array(1) {
  387. [0]=>
  388. string(%d) "%s/glob_variation/wonder1"
  389. }
  390. -- Iteration 2 --
  391. array(1) {
  392. [0]=>
  393. string(%d) "%s/glob_variation/wonder1"
  394. }
  395. -- Iteration 3 --
  396. array(1) {
  397. [0]=>
  398. string(%d) "%s/glob_variation/wonder1"
  399. }
  400. -- Iteration 4 --
  401. array(0) {
  402. }
  403. -- Iteration 5 --
  404. array(0) {
  405. }
  406. -- Iteration 6 --
  407. array(1) {
  408. [0]=>
  409. string(%d) "%s/glob_variation/wonder1"
  410. }
  411. -- Iteration 7 --
  412. array(0) {
  413. }
  414. -- Iteration 8 --
  415. glob(): Argument #1 ($pattern) must not contain any null bytes
  416. -- Iteration 9 --
  417. array(0) {
  418. }
  419. -- Iteration 10 --
  420. array(0) {
  421. }
  422. -- Iteration 11 --
  423. array(1) {
  424. [0]=>
  425. string(%d) "%s/glob_variation/wonder1"
  426. }
  427. -- Iteration 12 --
  428. array(0) {
  429. }
  430. Done