1--TEST--
2Test pathinfo() function: basic functionality
3--CREDITS--
4Dave Kelsey <d_kelsey@uk.ibm.com>
5--SKIPIF--
6<?php
7if(substr(PHP_OS, 0, 3) == "WIN")
8  die("skip Not valid for Windows");
9?>
10--FILE--
11<?php
12/* Prototype: mixed pathinfo ( string $path [, int $options] );
13   Description: Returns information about a file path
14*/
15
16echo "*** Testing basic functions of pathinfo() ***\n";
17
18$paths = array (
19			'c:\..\dir1',
20			'c:\test\..\test2\.\adir\afile.txt',
21			'/usr/include/../arpa/./inet.h',
22			'c:\test\adir\afile..txt',
23			'/usr/include/arpa/inet..h',
24			'c:\test\adir\afile.',
25			'/usr/include/arpa/inet.',
26			'/usr/include/arpa/inet,h',
27			'c:afile.txt',
28			'..\.\..\test\afile.txt',
29			'.././../test/afile',
30			'.',
31			'..',
32			'...',
33			'/usr/lib/.../afile'
34
35);
36
37$counter = 1;
38/* loop through $paths to test each $path in the above array */
39foreach($paths as $path) {
40  echo "-- Iteration $counter --\n";
41  var_dump( pathinfo($path, PATHINFO_DIRNAME) );
42  var_dump( pathinfo($path, PATHINFO_BASENAME) );
43  var_dump( pathinfo($path, PATHINFO_EXTENSION) );
44  var_dump( pathinfo($path, PATHINFO_FILENAME) );
45  var_dump( pathinfo($path) );
46  $counter++;
47}
48
49echo "Done\n";
50?>
51--EXPECTF--
52*** Testing basic functions of pathinfo() ***
53-- Iteration 1 --
54%unicode|string%(1) "."
55%unicode|string%(10) "c:\..\dir1"
56%unicode|string%(5) "\dir1"
57%unicode|string%(4) "c:\."
58array(4) {
59  [%u|b%"dirname"]=>
60  %unicode|string%(1) "."
61  [%u|b%"basename"]=>
62  %unicode|string%(10) "c:\..\dir1"
63  [%u|b%"extension"]=>
64  %unicode|string%(5) "\dir1"
65  [%u|b%"filename"]=>
66  %unicode|string%(4) "c:\."
67}
68-- Iteration 2 --
69%unicode|string%(1) "."
70%unicode|string%(33) "c:\test\..\test2\.\adir\afile.txt"
71%unicode|string%(3) "txt"
72%unicode|string%(29) "c:\test\..\test2\.\adir\afile"
73array(4) {
74  [%u|b%"dirname"]=>
75  %unicode|string%(1) "."
76  [%u|b%"basename"]=>
77  %unicode|string%(33) "c:\test\..\test2\.\adir\afile.txt"
78  [%u|b%"extension"]=>
79  %unicode|string%(3) "txt"
80  [%u|b%"filename"]=>
81  %unicode|string%(29) "c:\test\..\test2\.\adir\afile"
82}
83-- Iteration 3 --
84%unicode|string%(22) "/usr/include/../arpa/."
85%unicode|string%(6) "inet.h"
86%unicode|string%(1) "h"
87%unicode|string%(4) "inet"
88array(4) {
89  [%u|b%"dirname"]=>
90  %unicode|string%(22) "/usr/include/../arpa/."
91  [%u|b%"basename"]=>
92  %unicode|string%(6) "inet.h"
93  [%u|b%"extension"]=>
94  %unicode|string%(1) "h"
95  [%u|b%"filename"]=>
96  %unicode|string%(4) "inet"
97}
98-- Iteration 4 --
99%unicode|string%(1) "."
100%unicode|string%(23) "c:\test\adir\afile..txt"
101%unicode|string%(3) "txt"
102%unicode|string%(19) "c:\test\adir\afile."
103array(4) {
104  [%u|b%"dirname"]=>
105  %unicode|string%(1) "."
106  [%u|b%"basename"]=>
107  %unicode|string%(23) "c:\test\adir\afile..txt"
108  [%u|b%"extension"]=>
109  %unicode|string%(3) "txt"
110  [%u|b%"filename"]=>
111  %unicode|string%(19) "c:\test\adir\afile."
112}
113-- Iteration 5 --
114%unicode|string%(17) "/usr/include/arpa"
115%unicode|string%(7) "inet..h"
116%unicode|string%(1) "h"
117%unicode|string%(5) "inet."
118array(4) {
119  [%u|b%"dirname"]=>
120  %unicode|string%(17) "/usr/include/arpa"
121  [%u|b%"basename"]=>
122  %unicode|string%(7) "inet..h"
123  [%u|b%"extension"]=>
124  %unicode|string%(1) "h"
125  [%u|b%"filename"]=>
126  %unicode|string%(5) "inet."
127}
128-- Iteration 6 --
129%unicode|string%(1) "."
130%unicode|string%(19) "c:\test\adir\afile."
131%unicode|string%(0) ""
132%unicode|string%(18) "c:\test\adir\afile"
133array(4) {
134  [%u|b%"dirname"]=>
135  %unicode|string%(1) "."
136  [%u|b%"basename"]=>
137  %unicode|string%(19) "c:\test\adir\afile."
138  [%u|b%"extension"]=>
139  %unicode|string%(0) ""
140  [%u|b%"filename"]=>
141  %unicode|string%(18) "c:\test\adir\afile"
142}
143-- Iteration 7 --
144%unicode|string%(17) "/usr/include/arpa"
145%unicode|string%(5) "inet."
146%unicode|string%(0) ""
147%unicode|string%(4) "inet"
148array(4) {
149  [%u|b%"dirname"]=>
150  %unicode|string%(17) "/usr/include/arpa"
151  [%u|b%"basename"]=>
152  %unicode|string%(5) "inet."
153  [%u|b%"extension"]=>
154  %unicode|string%(0) ""
155  [%u|b%"filename"]=>
156  %unicode|string%(4) "inet"
157}
158-- Iteration 8 --
159%unicode|string%(17) "/usr/include/arpa"
160%unicode|string%(6) "inet,h"
161%unicode|string%(0) ""
162%unicode|string%(6) "inet,h"
163array(3) {
164  [%u|b%"dirname"]=>
165  %unicode|string%(17) "/usr/include/arpa"
166  [%u|b%"basename"]=>
167  %unicode|string%(6) "inet,h"
168  [%u|b%"filename"]=>
169  %unicode|string%(6) "inet,h"
170}
171-- Iteration 9 --
172%unicode|string%(1) "."
173%unicode|string%(11) "c:afile.txt"
174%unicode|string%(3) "txt"
175%unicode|string%(7) "c:afile"
176array(4) {
177  [%u|b%"dirname"]=>
178  %unicode|string%(1) "."
179  [%u|b%"basename"]=>
180  %unicode|string%(11) "c:afile.txt"
181  [%u|b%"extension"]=>
182  %unicode|string%(3) "txt"
183  [%u|b%"filename"]=>
184  %unicode|string%(7) "c:afile"
185}
186-- Iteration 10 --
187%unicode|string%(1) "."
188%unicode|string%(22) "..\.\..\test\afile.txt"
189%unicode|string%(3) "txt"
190%unicode|string%(18) "..\.\..\test\afile"
191array(4) {
192  [%u|b%"dirname"]=>
193  %unicode|string%(1) "."
194  [%u|b%"basename"]=>
195  %unicode|string%(22) "..\.\..\test\afile.txt"
196  [%u|b%"extension"]=>
197  %unicode|string%(3) "txt"
198  [%u|b%"filename"]=>
199  %unicode|string%(18) "..\.\..\test\afile"
200}
201-- Iteration 11 --
202%unicode|string%(12) ".././../test"
203%unicode|string%(5) "afile"
204%unicode|string%(0) ""
205%unicode|string%(5) "afile"
206array(3) {
207  [%u|b%"dirname"]=>
208  %unicode|string%(12) ".././../test"
209  [%u|b%"basename"]=>
210  %unicode|string%(5) "afile"
211  [%u|b%"filename"]=>
212  %unicode|string%(5) "afile"
213}
214-- Iteration 12 --
215%unicode|string%(1) "."
216%unicode|string%(1) "."
217%unicode|string%(0) ""
218%unicode|string%(0) ""
219array(4) {
220  [%u|b%"dirname"]=>
221  %unicode|string%(1) "."
222  [%u|b%"basename"]=>
223  %unicode|string%(1) "."
224  [%u|b%"extension"]=>
225  %unicode|string%(0) ""
226  [%u|b%"filename"]=>
227  %unicode|string%(0) ""
228}
229-- Iteration 13 --
230%unicode|string%(1) "."
231%unicode|string%(2) ".."
232%unicode|string%(0) ""
233%unicode|string%(1) "."
234array(4) {
235  [%u|b%"dirname"]=>
236  %unicode|string%(1) "."
237  [%u|b%"basename"]=>
238  %unicode|string%(2) ".."
239  [%u|b%"extension"]=>
240  %unicode|string%(0) ""
241  [%u|b%"filename"]=>
242  %unicode|string%(1) "."
243}
244-- Iteration 14 --
245%unicode|string%(1) "."
246%unicode|string%(3) "..."
247%unicode|string%(0) ""
248%unicode|string%(2) ".."
249array(4) {
250  [%u|b%"dirname"]=>
251  %unicode|string%(1) "."
252  [%u|b%"basename"]=>
253  %unicode|string%(3) "..."
254  [%u|b%"extension"]=>
255  %unicode|string%(0) ""
256  [%u|b%"filename"]=>
257  %unicode|string%(2) ".."
258}
259-- Iteration 15 --
260%unicode|string%(12) "/usr/lib/..."
261%unicode|string%(5) "afile"
262%unicode|string%(0) ""
263%unicode|string%(5) "afile"
264array(3) {
265  [%u|b%"dirname"]=>
266  %unicode|string%(12) "/usr/lib/..."
267  [%u|b%"basename"]=>
268  %unicode|string%(5) "afile"
269  [%u|b%"filename"]=>
270  %unicode|string%(5) "afile"
271}
272Done
273
274