xref: /PHP-5.4/ext/standard/tests/strings/url_t.phpt (revision e919a873)
1--TEST--
2parse_url() function
3--FILE--
4<?php
5$sample_urls = array (
6'',
7'64.246.30.37',
8'http://64.246.30.37',
9'http://64.246.30.37/',
10'64.246.30.37/',
11'64.246.30.37:80/',
12'php.net',
13'php.net/',
14'http://php.net',
15'http://php.net/',
16'www.php.net',
17'www.php.net/',
18'http://www.php.net',
19'http://www.php.net/',
20'www.php.net:80',
21'http://www.php.net:80',
22'http://www.php.net:80/',
23'http://www.php.net/index.php',
24'www.php.net/?',
25'www.php.net:80/?',
26'http://www.php.net/?',
27'http://www.php.net:80/?',
28'http://www.php.net:80/index.php',
29'http://www.php.net:80/foo/bar/index.php',
30'http://www.php.net:80/this/is/a/very/deep/directory/structure/and/file.php',
31'http://www.php.net:80/this/is/a/very/deep/directory/structure/and/file.php?lots=1&of=2&parameters=3&too=4&here=5',
32'http://www.php.net:80/this/is/a/very/deep/directory/structure/and/',
33'http://www.php.net:80/this/is/a/very/deep/directory/structure/and/file.php',
34'http://www.php.net:80/this/../a/../deep/directory',
35'http://www.php.net:80/this/../a/../deep/directory/',
36'http://www.php.net:80/this/is/a/very/deep/directory/../file.php',
37'http://www.php.net:80/index.php',
38'http://www.php.net:80/index.php?',
39'http://www.php.net:80/#foo',
40'http://www.php.net:80/?#',
41'http://www.php.net:80/?test=1',
42'http://www.php.net/?test=1&',
43'http://www.php.net:80/?&',
44'http://www.php.net:80/index.php?test=1&',
45'http://www.php.net/index.php?&',
46'http://www.php.net:80/index.php?foo&',
47'http://www.php.net/index.php?&foo',
48'http://www.php.net:80/index.php?test=1&test2=char&test3=mixesCI',
49'www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123',
50'http://secret@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123',
51'http://secret:@www.php.net/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123',
52'http://:hideout@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123',
53'http://secret:hideout@www.php.net/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123',
54'http://secret@hideout@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123',
55'http://secret:hid:out@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123',
56'nntp://news.php.net',
57'ftp://ftp.gnu.org/gnu/glic/glibc.tar.gz',
58'zlib:http://foo@bar',
59'zlib:filename.txt',
60'zlib:/path/to/my/file/file.txt',
61'foo://foo@bar',
62'mailto:me@mydomain.com',
63'/foo.php?a=b&c=d',
64'foo.php?a=b&c=d',
65'http://user:passwd@www.example.com:8080?bar=1&boom=0',
66'file:///path/to/file',
67'file://path/to/file',
68'file:/path/to/file',
69'http://1.2.3.4:/abc.asp?a=1&b=2',
70'http://foo.com#bar',
71'scheme:',
72'foo+bar://baz@bang/bla',
73'gg:9130731',
74'http://user:@pass@host/path?argument?value#etc',
75);
76
77    foreach ($sample_urls as $url) {
78        var_dump(@parse_url($url));
79    }
80
81    $url = 'http://secret:hideout@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123';
82    foreach (array(PHP_URL_SCHEME,PHP_URL_HOST,PHP_URL_PORT,PHP_URL_USER,PHP_URL_PASS,PHP_URL_PATH,PHP_URL_QUERY,PHP_URL_FRAGMENT) as $v) {
83	var_dump(parse_url($url, $v));
84    }
85?>
86--EXPECT--
87array(1) {
88  ["path"]=>
89  string(0) ""
90}
91array(1) {
92  ["path"]=>
93  string(12) "64.246.30.37"
94}
95array(2) {
96  ["scheme"]=>
97  string(4) "http"
98  ["host"]=>
99  string(12) "64.246.30.37"
100}
101array(3) {
102  ["scheme"]=>
103  string(4) "http"
104  ["host"]=>
105  string(12) "64.246.30.37"
106  ["path"]=>
107  string(1) "/"
108}
109array(1) {
110  ["path"]=>
111  string(13) "64.246.30.37/"
112}
113array(3) {
114  ["host"]=>
115  string(12) "64.246.30.37"
116  ["port"]=>
117  int(80)
118  ["path"]=>
119  string(1) "/"
120}
121array(1) {
122  ["path"]=>
123  string(7) "php.net"
124}
125array(1) {
126  ["path"]=>
127  string(8) "php.net/"
128}
129array(2) {
130  ["scheme"]=>
131  string(4) "http"
132  ["host"]=>
133  string(7) "php.net"
134}
135array(3) {
136  ["scheme"]=>
137  string(4) "http"
138  ["host"]=>
139  string(7) "php.net"
140  ["path"]=>
141  string(1) "/"
142}
143array(1) {
144  ["path"]=>
145  string(11) "www.php.net"
146}
147array(1) {
148  ["path"]=>
149  string(12) "www.php.net/"
150}
151array(2) {
152  ["scheme"]=>
153  string(4) "http"
154  ["host"]=>
155  string(11) "www.php.net"
156}
157array(3) {
158  ["scheme"]=>
159  string(4) "http"
160  ["host"]=>
161  string(11) "www.php.net"
162  ["path"]=>
163  string(1) "/"
164}
165array(2) {
166  ["host"]=>
167  string(11) "www.php.net"
168  ["port"]=>
169  int(80)
170}
171array(3) {
172  ["scheme"]=>
173  string(4) "http"
174  ["host"]=>
175  string(11) "www.php.net"
176  ["port"]=>
177  int(80)
178}
179array(4) {
180  ["scheme"]=>
181  string(4) "http"
182  ["host"]=>
183  string(11) "www.php.net"
184  ["port"]=>
185  int(80)
186  ["path"]=>
187  string(1) "/"
188}
189array(3) {
190  ["scheme"]=>
191  string(4) "http"
192  ["host"]=>
193  string(11) "www.php.net"
194  ["path"]=>
195  string(10) "/index.php"
196}
197array(1) {
198  ["path"]=>
199  string(12) "www.php.net/"
200}
201array(3) {
202  ["host"]=>
203  string(11) "www.php.net"
204  ["port"]=>
205  int(80)
206  ["path"]=>
207  string(1) "/"
208}
209array(3) {
210  ["scheme"]=>
211  string(4) "http"
212  ["host"]=>
213  string(11) "www.php.net"
214  ["path"]=>
215  string(1) "/"
216}
217array(4) {
218  ["scheme"]=>
219  string(4) "http"
220  ["host"]=>
221  string(11) "www.php.net"
222  ["port"]=>
223  int(80)
224  ["path"]=>
225  string(1) "/"
226}
227array(4) {
228  ["scheme"]=>
229  string(4) "http"
230  ["host"]=>
231  string(11) "www.php.net"
232  ["port"]=>
233  int(80)
234  ["path"]=>
235  string(10) "/index.php"
236}
237array(4) {
238  ["scheme"]=>
239  string(4) "http"
240  ["host"]=>
241  string(11) "www.php.net"
242  ["port"]=>
243  int(80)
244  ["path"]=>
245  string(18) "/foo/bar/index.php"
246}
247array(4) {
248  ["scheme"]=>
249  string(4) "http"
250  ["host"]=>
251  string(11) "www.php.net"
252  ["port"]=>
253  int(80)
254  ["path"]=>
255  string(53) "/this/is/a/very/deep/directory/structure/and/file.php"
256}
257array(5) {
258  ["scheme"]=>
259  string(4) "http"
260  ["host"]=>
261  string(11) "www.php.net"
262  ["port"]=>
263  int(80)
264  ["path"]=>
265  string(53) "/this/is/a/very/deep/directory/structure/and/file.php"
266  ["query"]=>
267  string(37) "lots=1&of=2&parameters=3&too=4&here=5"
268}
269array(4) {
270  ["scheme"]=>
271  string(4) "http"
272  ["host"]=>
273  string(11) "www.php.net"
274  ["port"]=>
275  int(80)
276  ["path"]=>
277  string(45) "/this/is/a/very/deep/directory/structure/and/"
278}
279array(4) {
280  ["scheme"]=>
281  string(4) "http"
282  ["host"]=>
283  string(11) "www.php.net"
284  ["port"]=>
285  int(80)
286  ["path"]=>
287  string(53) "/this/is/a/very/deep/directory/structure/and/file.php"
288}
289array(4) {
290  ["scheme"]=>
291  string(4) "http"
292  ["host"]=>
293  string(11) "www.php.net"
294  ["port"]=>
295  int(80)
296  ["path"]=>
297  string(28) "/this/../a/../deep/directory"
298}
299array(4) {
300  ["scheme"]=>
301  string(4) "http"
302  ["host"]=>
303  string(11) "www.php.net"
304  ["port"]=>
305  int(80)
306  ["path"]=>
307  string(29) "/this/../a/../deep/directory/"
308}
309array(4) {
310  ["scheme"]=>
311  string(4) "http"
312  ["host"]=>
313  string(11) "www.php.net"
314  ["port"]=>
315  int(80)
316  ["path"]=>
317  string(42) "/this/is/a/very/deep/directory/../file.php"
318}
319array(4) {
320  ["scheme"]=>
321  string(4) "http"
322  ["host"]=>
323  string(11) "www.php.net"
324  ["port"]=>
325  int(80)
326  ["path"]=>
327  string(10) "/index.php"
328}
329array(4) {
330  ["scheme"]=>
331  string(4) "http"
332  ["host"]=>
333  string(11) "www.php.net"
334  ["port"]=>
335  int(80)
336  ["path"]=>
337  string(10) "/index.php"
338}
339array(5) {
340  ["scheme"]=>
341  string(4) "http"
342  ["host"]=>
343  string(11) "www.php.net"
344  ["port"]=>
345  int(80)
346  ["path"]=>
347  string(1) "/"
348  ["fragment"]=>
349  string(3) "foo"
350}
351array(4) {
352  ["scheme"]=>
353  string(4) "http"
354  ["host"]=>
355  string(11) "www.php.net"
356  ["port"]=>
357  int(80)
358  ["path"]=>
359  string(1) "/"
360}
361array(5) {
362  ["scheme"]=>
363  string(4) "http"
364  ["host"]=>
365  string(11) "www.php.net"
366  ["port"]=>
367  int(80)
368  ["path"]=>
369  string(1) "/"
370  ["query"]=>
371  string(6) "test=1"
372}
373array(4) {
374  ["scheme"]=>
375  string(4) "http"
376  ["host"]=>
377  string(11) "www.php.net"
378  ["path"]=>
379  string(1) "/"
380  ["query"]=>
381  string(7) "test=1&"
382}
383array(5) {
384  ["scheme"]=>
385  string(4) "http"
386  ["host"]=>
387  string(11) "www.php.net"
388  ["port"]=>
389  int(80)
390  ["path"]=>
391  string(1) "/"
392  ["query"]=>
393  string(1) "&"
394}
395array(5) {
396  ["scheme"]=>
397  string(4) "http"
398  ["host"]=>
399  string(11) "www.php.net"
400  ["port"]=>
401  int(80)
402  ["path"]=>
403  string(10) "/index.php"
404  ["query"]=>
405  string(7) "test=1&"
406}
407array(4) {
408  ["scheme"]=>
409  string(4) "http"
410  ["host"]=>
411  string(11) "www.php.net"
412  ["path"]=>
413  string(10) "/index.php"
414  ["query"]=>
415  string(1) "&"
416}
417array(5) {
418  ["scheme"]=>
419  string(4) "http"
420  ["host"]=>
421  string(11) "www.php.net"
422  ["port"]=>
423  int(80)
424  ["path"]=>
425  string(10) "/index.php"
426  ["query"]=>
427  string(4) "foo&"
428}
429array(4) {
430  ["scheme"]=>
431  string(4) "http"
432  ["host"]=>
433  string(11) "www.php.net"
434  ["path"]=>
435  string(10) "/index.php"
436  ["query"]=>
437  string(4) "&foo"
438}
439array(5) {
440  ["scheme"]=>
441  string(4) "http"
442  ["host"]=>
443  string(11) "www.php.net"
444  ["port"]=>
445  int(80)
446  ["path"]=>
447  string(10) "/index.php"
448  ["query"]=>
449  string(31) "test=1&test2=char&test3=mixesCI"
450}
451array(5) {
452  ["host"]=>
453  string(11) "www.php.net"
454  ["port"]=>
455  int(80)
456  ["path"]=>
457  string(10) "/index.php"
458  ["query"]=>
459  string(31) "test=1&test2=char&test3=mixesCI"
460  ["fragment"]=>
461  string(16) "some_page_ref123"
462}
463array(7) {
464  ["scheme"]=>
465  string(4) "http"
466  ["host"]=>
467  string(11) "www.php.net"
468  ["port"]=>
469  int(80)
470  ["user"]=>
471  string(6) "secret"
472  ["path"]=>
473  string(10) "/index.php"
474  ["query"]=>
475  string(31) "test=1&test2=char&test3=mixesCI"
476  ["fragment"]=>
477  string(16) "some_page_ref123"
478}
479array(6) {
480  ["scheme"]=>
481  string(4) "http"
482  ["host"]=>
483  string(11) "www.php.net"
484  ["user"]=>
485  string(6) "secret"
486  ["path"]=>
487  string(10) "/index.php"
488  ["query"]=>
489  string(31) "test=1&test2=char&test3=mixesCI"
490  ["fragment"]=>
491  string(16) "some_page_ref123"
492}
493array(7) {
494  ["scheme"]=>
495  string(4) "http"
496  ["host"]=>
497  string(11) "www.php.net"
498  ["port"]=>
499  int(80)
500  ["pass"]=>
501  string(7) "hideout"
502  ["path"]=>
503  string(10) "/index.php"
504  ["query"]=>
505  string(31) "test=1&test2=char&test3=mixesCI"
506  ["fragment"]=>
507  string(16) "some_page_ref123"
508}
509array(7) {
510  ["scheme"]=>
511  string(4) "http"
512  ["host"]=>
513  string(11) "www.php.net"
514  ["user"]=>
515  string(6) "secret"
516  ["pass"]=>
517  string(7) "hideout"
518  ["path"]=>
519  string(10) "/index.php"
520  ["query"]=>
521  string(31) "test=1&test2=char&test3=mixesCI"
522  ["fragment"]=>
523  string(16) "some_page_ref123"
524}
525array(7) {
526  ["scheme"]=>
527  string(4) "http"
528  ["host"]=>
529  string(11) "www.php.net"
530  ["port"]=>
531  int(80)
532  ["user"]=>
533  string(14) "secret@hideout"
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}
541array(8) {
542  ["scheme"]=>
543  string(4) "http"
544  ["host"]=>
545  string(11) "www.php.net"
546  ["port"]=>
547  int(80)
548  ["user"]=>
549  string(6) "secret"
550  ["pass"]=>
551  string(7) "hid:out"
552  ["path"]=>
553  string(10) "/index.php"
554  ["query"]=>
555  string(31) "test=1&test2=char&test3=mixesCI"
556  ["fragment"]=>
557  string(16) "some_page_ref123"
558}
559array(2) {
560  ["scheme"]=>
561  string(4) "nntp"
562  ["host"]=>
563  string(12) "news.php.net"
564}
565array(3) {
566  ["scheme"]=>
567  string(3) "ftp"
568  ["host"]=>
569  string(11) "ftp.gnu.org"
570  ["path"]=>
571  string(22) "/gnu/glic/glibc.tar.gz"
572}
573array(2) {
574  ["scheme"]=>
575  string(4) "zlib"
576  ["path"]=>
577  string(14) "http://foo@bar"
578}
579array(2) {
580  ["scheme"]=>
581  string(4) "zlib"
582  ["path"]=>
583  string(12) "filename.txt"
584}
585array(2) {
586  ["scheme"]=>
587  string(4) "zlib"
588  ["path"]=>
589  string(25) "/path/to/my/file/file.txt"
590}
591array(3) {
592  ["scheme"]=>
593  string(3) "foo"
594  ["host"]=>
595  string(3) "bar"
596  ["user"]=>
597  string(3) "foo"
598}
599array(2) {
600  ["scheme"]=>
601  string(6) "mailto"
602  ["path"]=>
603  string(15) "me@mydomain.com"
604}
605array(2) {
606  ["path"]=>
607  string(8) "/foo.php"
608  ["query"]=>
609  string(7) "a=b&c=d"
610}
611array(2) {
612  ["path"]=>
613  string(7) "foo.php"
614  ["query"]=>
615  string(7) "a=b&c=d"
616}
617array(6) {
618  ["scheme"]=>
619  string(4) "http"
620  ["host"]=>
621  string(15) "www.example.com"
622  ["port"]=>
623  int(8080)
624  ["user"]=>
625  string(4) "user"
626  ["pass"]=>
627  string(6) "passwd"
628  ["query"]=>
629  string(12) "bar=1&boom=0"
630}
631array(2) {
632  ["scheme"]=>
633  string(4) "file"
634  ["path"]=>
635  string(13) "/path/to/file"
636}
637array(3) {
638  ["scheme"]=>
639  string(4) "file"
640  ["host"]=>
641  string(4) "path"
642  ["path"]=>
643  string(8) "/to/file"
644}
645array(2) {
646  ["scheme"]=>
647  string(4) "file"
648  ["path"]=>
649  string(13) "/path/to/file"
650}
651array(4) {
652  ["scheme"]=>
653  string(4) "http"
654  ["host"]=>
655  string(7) "1.2.3.4"
656  ["path"]=>
657  string(8) "/abc.asp"
658  ["query"]=>
659  string(7) "a=1&b=2"
660}
661array(3) {
662  ["scheme"]=>
663  string(4) "http"
664  ["host"]=>
665  string(7) "foo.com"
666  ["fragment"]=>
667  string(3) "bar"
668}
669array(1) {
670  ["scheme"]=>
671  string(6) "scheme"
672}
673array(4) {
674  ["scheme"]=>
675  string(7) "foo+bar"
676  ["host"]=>
677  string(4) "bang"
678  ["user"]=>
679  string(3) "baz"
680  ["path"]=>
681  string(4) "/bla"
682}
683array(2) {
684  ["scheme"]=>
685  string(2) "gg"
686  ["path"]=>
687  string(7) "9130731"
688}
689array(7) {
690  ["scheme"]=>
691  string(4) "http"
692  ["host"]=>
693  string(4) "host"
694  ["user"]=>
695  string(4) "user"
696  ["pass"]=>
697  string(5) "@pass"
698  ["path"]=>
699  string(5) "/path"
700  ["query"]=>
701  string(14) "argument?value"
702  ["fragment"]=>
703  string(3) "etc"
704}
705string(4) "http"
706string(11) "www.php.net"
707int(80)
708string(6) "secret"
709string(7) "hideout"
710string(10) "/index.php"
711string(31) "test=1&test2=char&test3=mixesCI"
712string(16) "some_page_ref123"
713