Annotation of embedaddon/php/ext/standard/tests/url/parse_url_basic_001.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: Test parse_url() function: Parse a load of URLs without specifying the component
3: --FILE--
4: <?php
5: /* Prototype : proto mixed parse_url(string url, [int url_component])
6: * Description: Parse a and return its components
7: * Source code: ext/standard/url.c
8: * Alias to functions:
9: */
10:
11: /*
12: * Parse a load of URLs without specifying the component
13: */
14: include_once(dirname(__FILE__) . '/urls.inc');
15:
16: foreach ($urls as $url) {
17: echo "\n--> $url: ";
18: var_dump(parse_url($url));
19: }
20:
21: echo "Done";
22: ?>
23: --EXPECTF--
24:
25: --> 64.246.30.37: array(1) {
26: ["path"]=>
27: string(12) "64.246.30.37"
28: }
29:
30: --> http://64.246.30.37: array(2) {
31: ["scheme"]=>
32: string(4) "http"
33: ["host"]=>
34: string(12) "64.246.30.37"
35: }
36:
37: --> http://64.246.30.37/: array(3) {
38: ["scheme"]=>
39: string(4) "http"
40: ["host"]=>
41: string(12) "64.246.30.37"
42: ["path"]=>
43: string(1) "/"
44: }
45:
46: --> 64.246.30.37/: array(1) {
47: ["path"]=>
48: string(13) "64.246.30.37/"
49: }
50:
51: --> 64.246.30.37:80/: array(3) {
52: ["host"]=>
53: string(12) "64.246.30.37"
54: ["port"]=>
55: int(80)
56: ["path"]=>
57: string(1) "/"
58: }
59:
60: --> php.net: array(1) {
61: ["path"]=>
62: string(7) "php.net"
63: }
64:
65: --> php.net/: array(1) {
66: ["path"]=>
67: string(8) "php.net/"
68: }
69:
70: --> http://php.net: array(2) {
71: ["scheme"]=>
72: string(4) "http"
73: ["host"]=>
74: string(7) "php.net"
75: }
76:
77: --> http://php.net/: array(3) {
78: ["scheme"]=>
79: string(4) "http"
80: ["host"]=>
81: string(7) "php.net"
82: ["path"]=>
83: string(1) "/"
84: }
85:
86: --> www.php.net: array(1) {
87: ["path"]=>
88: string(11) "www.php.net"
89: }
90:
91: --> www.php.net/: array(1) {
92: ["path"]=>
93: string(12) "www.php.net/"
94: }
95:
96: --> http://www.php.net: array(2) {
97: ["scheme"]=>
98: string(4) "http"
99: ["host"]=>
100: string(11) "www.php.net"
101: }
102:
103: --> http://www.php.net/: array(3) {
104: ["scheme"]=>
105: string(4) "http"
106: ["host"]=>
107: string(11) "www.php.net"
108: ["path"]=>
109: string(1) "/"
110: }
111:
112: --> www.php.net:80: array(2) {
113: ["host"]=>
114: string(11) "www.php.net"
115: ["port"]=>
116: int(80)
117: }
118:
119: --> http://www.php.net:80: array(3) {
120: ["scheme"]=>
121: string(4) "http"
122: ["host"]=>
123: string(11) "www.php.net"
124: ["port"]=>
125: int(80)
126: }
127:
128: --> http://www.php.net:80/: array(4) {
129: ["scheme"]=>
130: string(4) "http"
131: ["host"]=>
132: string(11) "www.php.net"
133: ["port"]=>
134: int(80)
135: ["path"]=>
136: string(1) "/"
137: }
138:
139: --> http://www.php.net/index.php: array(3) {
140: ["scheme"]=>
141: string(4) "http"
142: ["host"]=>
143: string(11) "www.php.net"
144: ["path"]=>
145: string(10) "/index.php"
146: }
147:
148: --> www.php.net/?: array(1) {
149: ["path"]=>
150: string(12) "www.php.net/"
151: }
152:
153: --> www.php.net:80/?: array(3) {
154: ["host"]=>
155: string(11) "www.php.net"
156: ["port"]=>
157: int(80)
158: ["path"]=>
159: string(1) "/"
160: }
161:
162: --> http://www.php.net/?: array(3) {
163: ["scheme"]=>
164: string(4) "http"
165: ["host"]=>
166: string(11) "www.php.net"
167: ["path"]=>
168: string(1) "/"
169: }
170:
171: --> http://www.php.net:80/?: array(4) {
172: ["scheme"]=>
173: string(4) "http"
174: ["host"]=>
175: string(11) "www.php.net"
176: ["port"]=>
177: int(80)
178: ["path"]=>
179: string(1) "/"
180: }
181:
182: --> http://www.php.net:80/index.php: array(4) {
183: ["scheme"]=>
184: string(4) "http"
185: ["host"]=>
186: string(11) "www.php.net"
187: ["port"]=>
188: int(80)
189: ["path"]=>
190: string(10) "/index.php"
191: }
192:
193: --> http://www.php.net:80/foo/bar/index.php: array(4) {
194: ["scheme"]=>
195: string(4) "http"
196: ["host"]=>
197: string(11) "www.php.net"
198: ["port"]=>
199: int(80)
200: ["path"]=>
201: string(18) "/foo/bar/index.php"
202: }
203:
204: --> http://www.php.net:80/this/is/a/very/deep/directory/structure/and/file.php: array(4) {
205: ["scheme"]=>
206: string(4) "http"
207: ["host"]=>
208: string(11) "www.php.net"
209: ["port"]=>
210: int(80)
211: ["path"]=>
212: string(53) "/this/is/a/very/deep/directory/structure/and/file.php"
213: }
214:
215: --> http://www.php.net:80/this/is/a/very/deep/directory/structure/and/file.php?lots=1&of=2¶meters=3&too=4&here=5: array(5) {
216: ["scheme"]=>
217: string(4) "http"
218: ["host"]=>
219: string(11) "www.php.net"
220: ["port"]=>
221: int(80)
222: ["path"]=>
223: string(53) "/this/is/a/very/deep/directory/structure/and/file.php"
224: ["query"]=>
225: string(37) "lots=1&of=2¶meters=3&too=4&here=5"
226: }
227:
228: --> http://www.php.net:80/this/is/a/very/deep/directory/structure/and/: array(4) {
229: ["scheme"]=>
230: string(4) "http"
231: ["host"]=>
232: string(11) "www.php.net"
233: ["port"]=>
234: int(80)
235: ["path"]=>
236: string(45) "/this/is/a/very/deep/directory/structure/and/"
237: }
238:
239: --> http://www.php.net:80/this/is/a/very/deep/directory/structure/and/file.php: array(4) {
240: ["scheme"]=>
241: string(4) "http"
242: ["host"]=>
243: string(11) "www.php.net"
244: ["port"]=>
245: int(80)
246: ["path"]=>
247: string(53) "/this/is/a/very/deep/directory/structure/and/file.php"
248: }
249:
250: --> http://www.php.net:80/this/../a/../deep/directory: array(4) {
251: ["scheme"]=>
252: string(4) "http"
253: ["host"]=>
254: string(11) "www.php.net"
255: ["port"]=>
256: int(80)
257: ["path"]=>
258: string(28) "/this/../a/../deep/directory"
259: }
260:
261: --> http://www.php.net:80/this/../a/../deep/directory/: array(4) {
262: ["scheme"]=>
263: string(4) "http"
264: ["host"]=>
265: string(11) "www.php.net"
266: ["port"]=>
267: int(80)
268: ["path"]=>
269: string(29) "/this/../a/../deep/directory/"
270: }
271:
272: --> http://www.php.net:80/this/is/a/very/deep/directory/../file.php: array(4) {
273: ["scheme"]=>
274: string(4) "http"
275: ["host"]=>
276: string(11) "www.php.net"
277: ["port"]=>
278: int(80)
279: ["path"]=>
280: string(42) "/this/is/a/very/deep/directory/../file.php"
281: }
282:
283: --> http://www.php.net:80/index.php: array(4) {
284: ["scheme"]=>
285: string(4) "http"
286: ["host"]=>
287: string(11) "www.php.net"
288: ["port"]=>
289: int(80)
290: ["path"]=>
291: string(10) "/index.php"
292: }
293:
294: --> http://www.php.net:80/index.php?: array(4) {
295: ["scheme"]=>
296: string(4) "http"
297: ["host"]=>
298: string(11) "www.php.net"
299: ["port"]=>
300: int(80)
301: ["path"]=>
302: string(10) "/index.php"
303: }
304:
305: --> http://www.php.net:80/#foo: array(5) {
306: ["scheme"]=>
307: string(4) "http"
308: ["host"]=>
309: string(11) "www.php.net"
310: ["port"]=>
311: int(80)
312: ["path"]=>
313: string(1) "/"
314: ["fragment"]=>
315: string(3) "foo"
316: }
317:
318: --> http://www.php.net:80/?#: array(4) {
319: ["scheme"]=>
320: string(4) "http"
321: ["host"]=>
322: string(11) "www.php.net"
323: ["port"]=>
324: int(80)
325: ["path"]=>
326: string(1) "/"
327: }
328:
329: --> http://www.php.net:80/?test=1: array(5) {
330: ["scheme"]=>
331: string(4) "http"
332: ["host"]=>
333: string(11) "www.php.net"
334: ["port"]=>
335: int(80)
336: ["path"]=>
337: string(1) "/"
338: ["query"]=>
339: string(6) "test=1"
340: }
341:
342: --> http://www.php.net/?test=1&: array(4) {
343: ["scheme"]=>
344: string(4) "http"
345: ["host"]=>
346: string(11) "www.php.net"
347: ["path"]=>
348: string(1) "/"
349: ["query"]=>
350: string(7) "test=1&"
351: }
352:
353: --> http://www.php.net:80/?&: array(5) {
354: ["scheme"]=>
355: string(4) "http"
356: ["host"]=>
357: string(11) "www.php.net"
358: ["port"]=>
359: int(80)
360: ["path"]=>
361: string(1) "/"
362: ["query"]=>
363: string(1) "&"
364: }
365:
366: --> http://www.php.net:80/index.php?test=1&: array(5) {
367: ["scheme"]=>
368: string(4) "http"
369: ["host"]=>
370: string(11) "www.php.net"
371: ["port"]=>
372: int(80)
373: ["path"]=>
374: string(10) "/index.php"
375: ["query"]=>
376: string(7) "test=1&"
377: }
378:
379: --> http://www.php.net/index.php?&: array(4) {
380: ["scheme"]=>
381: string(4) "http"
382: ["host"]=>
383: string(11) "www.php.net"
384: ["path"]=>
385: string(10) "/index.php"
386: ["query"]=>
387: string(1) "&"
388: }
389:
390: --> http://www.php.net:80/index.php?foo&: array(5) {
391: ["scheme"]=>
392: string(4) "http"
393: ["host"]=>
394: string(11) "www.php.net"
395: ["port"]=>
396: int(80)
397: ["path"]=>
398: string(10) "/index.php"
399: ["query"]=>
400: string(4) "foo&"
401: }
402:
403: --> http://www.php.net/index.php?&foo: array(4) {
404: ["scheme"]=>
405: string(4) "http"
406: ["host"]=>
407: string(11) "www.php.net"
408: ["path"]=>
409: string(10) "/index.php"
410: ["query"]=>
411: string(4) "&foo"
412: }
413:
414: --> http://www.php.net:80/index.php?test=1&test2=char&test3=mixesCI: array(5) {
415: ["scheme"]=>
416: string(4) "http"
417: ["host"]=>
418: string(11) "www.php.net"
419: ["port"]=>
420: int(80)
421: ["path"]=>
422: string(10) "/index.php"
423: ["query"]=>
424: string(31) "test=1&test2=char&test3=mixesCI"
425: }
426:
427: --> www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123: array(5) {
428: ["host"]=>
429: string(11) "www.php.net"
430: ["port"]=>
431: int(80)
432: ["path"]=>
433: string(10) "/index.php"
434: ["query"]=>
435: string(31) "test=1&test2=char&test3=mixesCI"
436: ["fragment"]=>
437: string(16) "some_page_ref123"
438: }
439:
440: --> http://secret@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123: array(7) {
441: ["scheme"]=>
442: string(4) "http"
443: ["host"]=>
444: string(11) "www.php.net"
445: ["port"]=>
446: int(80)
447: ["user"]=>
448: string(6) "secret"
449: ["path"]=>
450: string(10) "/index.php"
451: ["query"]=>
452: string(31) "test=1&test2=char&test3=mixesCI"
453: ["fragment"]=>
454: string(16) "some_page_ref123"
455: }
456:
457: --> http://secret:@www.php.net/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123: array(6) {
458: ["scheme"]=>
459: string(4) "http"
460: ["host"]=>
461: string(11) "www.php.net"
462: ["user"]=>
463: string(6) "secret"
464: ["path"]=>
465: string(10) "/index.php"
466: ["query"]=>
467: string(31) "test=1&test2=char&test3=mixesCI"
468: ["fragment"]=>
469: string(16) "some_page_ref123"
470: }
471:
472: --> http://:hideout@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123: array(7) {
473: ["scheme"]=>
474: string(4) "http"
475: ["host"]=>
476: string(11) "www.php.net"
477: ["port"]=>
478: int(80)
479: ["pass"]=>
480: string(7) "hideout"
481: ["path"]=>
482: string(10) "/index.php"
483: ["query"]=>
484: string(31) "test=1&test2=char&test3=mixesCI"
485: ["fragment"]=>
486: string(16) "some_page_ref123"
487: }
488:
489: --> http://secret:hideout@www.php.net/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123: array(7) {
490: ["scheme"]=>
491: string(4) "http"
492: ["host"]=>
493: string(11) "www.php.net"
494: ["user"]=>
495: string(6) "secret"
496: ["pass"]=>
497: string(7) "hideout"
498: ["path"]=>
499: string(10) "/index.php"
500: ["query"]=>
501: string(31) "test=1&test2=char&test3=mixesCI"
502: ["fragment"]=>
503: string(16) "some_page_ref123"
504: }
505:
506: --> http://secret@hideout@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123: array(7) {
507: ["scheme"]=>
508: string(4) "http"
509: ["host"]=>
510: string(11) "www.php.net"
511: ["port"]=>
512: int(80)
513: ["user"]=>
514: string(14) "secret@hideout"
515: ["path"]=>
516: string(10) "/index.php"
517: ["query"]=>
518: string(31) "test=1&test2=char&test3=mixesCI"
519: ["fragment"]=>
520: string(16) "some_page_ref123"
521: }
522:
523: --> http://secret:hid:out@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123: array(8) {
524: ["scheme"]=>
525: string(4) "http"
526: ["host"]=>
527: string(11) "www.php.net"
528: ["port"]=>
529: int(80)
530: ["user"]=>
531: string(6) "secret"
532: ["pass"]=>
533: string(7) "hid:out"
534: ["path"]=>
535: string(10) "/index.php"
536: ["query"]=>
537: string(31) "test=1&test2=char&test3=mixesCI"
538: ["fragment"]=>
539: string(16) "some_page_ref123"
540: }
541:
542: --> nntp://news.php.net: array(2) {
543: ["scheme"]=>
544: string(4) "nntp"
545: ["host"]=>
546: string(12) "news.php.net"
547: }
548:
549: --> ftp://ftp.gnu.org/gnu/glic/glibc.tar.gz: array(3) {
550: ["scheme"]=>
551: string(3) "ftp"
552: ["host"]=>
553: string(11) "ftp.gnu.org"
554: ["path"]=>
555: string(22) "/gnu/glic/glibc.tar.gz"
556: }
557:
558: --> zlib:http://foo@bar: array(2) {
559: ["scheme"]=>
560: string(4) "zlib"
561: ["path"]=>
562: string(14) "http://foo@bar"
563: }
564:
565: --> zlib:filename.txt: array(2) {
566: ["scheme"]=>
567: string(4) "zlib"
568: ["path"]=>
569: string(12) "filename.txt"
570: }
571:
572: --> zlib:/path/to/my/file/file.txt: array(2) {
573: ["scheme"]=>
574: string(4) "zlib"
575: ["path"]=>
576: string(25) "/path/to/my/file/file.txt"
577: }
578:
579: --> foo://foo@bar: array(3) {
580: ["scheme"]=>
581: string(3) "foo"
582: ["host"]=>
583: string(3) "bar"
584: ["user"]=>
585: string(3) "foo"
586: }
587:
588: --> mailto:me@mydomain.com: array(2) {
589: ["scheme"]=>
590: string(6) "mailto"
591: ["path"]=>
592: string(15) "me@mydomain.com"
593: }
594:
595: --> /foo.php?a=b&c=d: array(2) {
596: ["path"]=>
597: string(8) "/foo.php"
598: ["query"]=>
599: string(7) "a=b&c=d"
600: }
601:
602: --> foo.php?a=b&c=d: array(2) {
603: ["path"]=>
604: string(7) "foo.php"
605: ["query"]=>
606: string(7) "a=b&c=d"
607: }
608:
609: --> http://user:passwd@www.example.com:8080?bar=1&boom=0: array(6) {
610: ["scheme"]=>
611: string(4) "http"
612: ["host"]=>
613: string(15) "www.example.com"
614: ["port"]=>
615: int(8080)
616: ["user"]=>
617: string(4) "user"
618: ["pass"]=>
619: string(6) "passwd"
620: ["query"]=>
621: string(12) "bar=1&boom=0"
622: }
623:
624: --> file:///path/to/file: array(2) {
625: ["scheme"]=>
626: string(4) "file"
627: ["path"]=>
628: string(13) "/path/to/file"
629: }
630:
631: --> file://path/to/file: array(3) {
632: ["scheme"]=>
633: string(4) "file"
634: ["host"]=>
635: string(4) "path"
636: ["path"]=>
637: string(8) "/to/file"
638: }
639:
640: --> file:/path/to/file: array(2) {
641: ["scheme"]=>
642: string(4) "file"
643: ["path"]=>
644: string(13) "/path/to/file"
645: }
646:
647: --> http://1.2.3.4:/abc.asp?a=1&b=2: array(4) {
648: ["scheme"]=>
649: string(4) "http"
650: ["host"]=>
651: string(7) "1.2.3.4"
652: ["path"]=>
653: string(8) "/abc.asp"
654: ["query"]=>
655: string(7) "a=1&b=2"
656: }
657:
658: --> http://foo.com#bar: array(3) {
659: ["scheme"]=>
660: string(4) "http"
661: ["host"]=>
662: string(7) "foo.com"
663: ["fragment"]=>
664: string(3) "bar"
665: }
666:
667: --> scheme:: array(1) {
668: ["scheme"]=>
669: string(6) "scheme"
670: }
671:
672: --> foo+bar://baz@bang/bla: array(4) {
673: ["scheme"]=>
674: string(7) "foo+bar"
675: ["host"]=>
676: string(4) "bang"
677: ["user"]=>
678: string(3) "baz"
679: ["path"]=>
680: string(4) "/bla"
681: }
682:
683: --> gg:9130731: array(2) {
684: ["scheme"]=>
685: string(2) "gg"
686: ["path"]=>
687: string(7) "9130731"
688: }
689:
690: --> http://user:@pass@host/path?argument?value#etc: array(7) {
691: ["scheme"]=>
692: string(4) "http"
693: ["host"]=>
694: string(4) "host"
695: ["user"]=>
696: string(4) "user"
697: ["pass"]=>
698: string(5) "@pass"
699: ["path"]=>
700: string(5) "/path"
701: ["query"]=>
702: string(14) "argument?value"
703: ["fragment"]=>
704: string(3) "etc"
705: }
706:
707: --> http://10.10.10.10/:80: array(3) {
708: ["scheme"]=>
709: string(4) "http"
710: ["host"]=>
711: string(11) "10.10.10.10"
712: ["path"]=>
713: string(4) "/:80"
714: }
715:
716: --> http://x:?: array(2) {
717: ["scheme"]=>
718: string(4) "http"
719: ["host"]=>
720: string(1) "x"
721: }
722:
723: --> x:blah.com: array(2) {
724: ["scheme"]=>
725: string(1) "x"
726: ["path"]=>
727: string(8) "blah.com"
728: }
729:
730: --> x:/blah.com: array(2) {
731: ["scheme"]=>
732: string(1) "x"
733: ["path"]=>
734: string(9) "/blah.com"
735: }
736:
737: --> x://::abc/?: bool(false)
738:
739: --> http://::?: array(2) {
740: ["scheme"]=>
741: string(4) "http"
742: ["host"]=>
743: string(1) ":"
744: }
745:
1.1.1.2 ! misho 746: --> http://::#: array(2) {
! 747: ["scheme"]=>
! 748: string(4) "http"
! 749: ["host"]=>
! 750: string(1) ":"
! 751: }
! 752:
1.1 misho 753: --> x://::6.5: array(3) {
754: ["scheme"]=>
755: string(1) "x"
756: ["host"]=>
757: string(1) ":"
758: ["port"]=>
759: int(6)
760: }
761:
762: --> http://?:/: array(3) {
763: ["scheme"]=>
764: string(4) "http"
765: ["host"]=>
766: string(1) "?"
767: ["path"]=>
768: string(1) "/"
769: }
770:
771: --> http://@?:/: array(4) {
772: ["scheme"]=>
773: string(4) "http"
774: ["host"]=>
775: string(1) "?"
776: ["user"]=>
777: string(0) ""
778: ["path"]=>
779: string(1) "/"
780: }
781:
782: --> file:///:: array(2) {
783: ["scheme"]=>
784: string(4) "file"
785: ["path"]=>
786: string(2) "/:"
787: }
788:
789: --> file:///a:/: array(2) {
790: ["scheme"]=>
791: string(4) "file"
792: ["path"]=>
793: string(3) "a:/"
794: }
795:
796: --> file:///ab:/: array(2) {
797: ["scheme"]=>
798: string(4) "file"
799: ["path"]=>
800: string(5) "/ab:/"
801: }
802:
803: --> file:///a:/: array(2) {
804: ["scheme"]=>
805: string(4) "file"
806: ["path"]=>
807: string(3) "a:/"
808: }
809:
810: --> file:///@:/: array(2) {
811: ["scheme"]=>
812: string(4) "file"
813: ["path"]=>
814: string(3) "@:/"
815: }
816:
817: --> file:///:80/: array(2) {
818: ["scheme"]=>
819: string(4) "file"
820: ["path"]=>
821: string(5) "/:80/"
822: }
823:
824: --> []: array(1) {
825: ["path"]=>
826: string(2) "[]"
827: }
828:
829: --> http://[x:80]/: array(3) {
830: ["scheme"]=>
831: string(4) "http"
832: ["host"]=>
833: string(6) "[x:80]"
834: ["path"]=>
835: string(1) "/"
836: }
837:
838: --> : array(1) {
839: ["path"]=>
840: string(0) ""
841: }
842:
843: --> /: array(1) {
844: ["path"]=>
845: string(1) "/"
846: }
847:
1.1.1.2 ! misho 848: --> /rest/Users?filter={"id":"123"}: array(2) {
! 849: ["path"]=>
! 850: string(11) "/rest/Users"
! 851: ["query"]=>
! 852: string(19) "filter={"id":"123"}"
! 853: }
! 854:
1.1 misho 855: --> http:///blah.com: bool(false)
856:
857: --> http://:80: bool(false)
858:
859: --> http://user@:80: bool(false)
860:
861: --> http://user:pass@:80: bool(false)
862:
863: --> http://:: bool(false)
864:
865: --> http://@/: bool(false)
866:
867: --> http://@:/: bool(false)
868:
869: --> http://:/: bool(false)
870:
871: --> http://?: bool(false)
872:
1.1.1.2 ! misho 873: --> http://#: bool(false)
! 874:
1.1 misho 875: --> http://?:: bool(false)
876:
877: --> http://:?: bool(false)
878:
879: --> http://blah.com:123456: bool(false)
880:
881: --> http://blah.com:abcdef: bool(false)
1.1.1.2 ! misho 882: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>