glob_variation-win32-mb.phpt 12 KB

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