glob_variation.phpt 8.5 KB

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