4 Dave Kelsey <d_kelsey@uk.ibm.com>
8 * proto string basename(string path [, string suffix])
9 * Function is implemented in ext/standard/string.c
18 /* simple paths with trailing slashes */
25 /* paths with suffix removal */
26 array("bar.gz", ".gz"),
27 array("bar.gz", "bar.gz"),
28 array("/foo/bar.gz", ".gz"),
29 array("foo/bar.gz", ".gz"),
30 array("/bar.gz", ".gz"),
32 /* paths with suffix and trailing slashes with suffix removal*/
33 array("bar.gz/", ".gz"),
34 array("/bar.gz/", ".gz"),
35 array("/foo/bar.gz/", ".gz"),
36 array("foo/bar.gz/", ".gz"),
37 array("/bar.gz/", ".gz"),
39 /* paths with basename only suffix, with suffix removal*/
42 array("/foo/.gz", ".gz"),
44 /* paths with basename only suffix & trailing slashes, with suffix removal*/
46 array("/foo/.gz/", ".gz"),
47 array("foo/.gz/", ".gz"),
49 /* paths with binary value to check if the function is binary safe*/
50 array("foo".chr(0)."bar"),
51 array("/foo".chr(0)."bar"),
52 array("/foo".chr(0)."bar/"),
53 array("foo".chr(0)."bar/"),
54 array("foo".chr(0)."bar/test"),
55 array("/foo".chr(0)."bar/bar.gz", ".gz"),
56 array("/foo".chr(0)."bar/bar.gz")
59 $file_path_variations = array (
60 /* paths with shortcut home dir char, with suffix variation */
61 array("~/home/user/bar"),
62 array("~/home/user/bar", ""),
63 array("~/home/user/bar", NULL),
64 array("~/home/user/bar", ' '),
65 array("~/home/user/bar.tar", ".tar"),
66 array("~/home/user/bar.tar", "~"),
67 array("~/home/user/bar.tar/", "~"),
68 array("~/home/user/bar.tar/", ""),
69 array("~/home/user/bar.tar", NULL),
70 array("~/home/user/bar.tar", ''),
71 array("~/home/user/bar.tar", " "),
73 /* paths with hostname:dir notation, with suffix variation */
74 array("hostname:/home/usr/bar.tar"),
75 array("hostname:/home/user/bar.tar", "home"),
76 array("hostname:/home/user/tbar.gz", "bar.gz"),
77 array("hostname:/home/user/tbar.gz", "/bar.gz"),
78 array("hostname:/home/user/tbar.gz", "/bar.gz/"),
79 array("hostname:/home/user/tbar.gz/", "/bar.gz/"),
80 array("hostname:/home/user/tbar.gz/", "/bar.gz/"),
81 array("hostname:/home/user/My Pics.gz/", "/bar.gz/"),
82 array("hostname:/home/user/My Pics.gz/", "Pics.gz/"),
83 array("hostname:/home/user/My Pics.gz/", "Pics.gz"),
84 array("hostname:/home/user/My Pics.gz/", ".gz"),
85 array("hostname:/home/user/My Pics.gz/"),
86 array("hostname:/home/user/My Pics.gz/", NULL),
87 array("hostname:/home/user/My Pics.gz/", ' '),
88 array("hostname:/home/user/My Pics.gz/", ''),
89 array("hostname:/home/user/My Pics.gz/", "My Pics.gz"),
91 /* paths with numeirc strings */
94 array("10.5", "10.5"),
103 /* paths and suffix given as same */
104 array("bar.gz", "bar.gz"),
105 array("/bar.gz", "/bar.gz"),
106 array("/bar.gz/", "/bar.gz/"),
111 /* path with spaces */
121 function check_basename( $path_arrays ) {
123 foreach ($path_arrays as $path) {
124 echo "\n--Iteration $loop_counter--\n"; $loop_counter++;
125 if( 1 == count($path) ) { // no suffix provided
126 var_dump( basename($path[0]) );
127 } else { // path as well as suffix provided,
128 var_dump( basename($path[0], $path[1]) );
133 echo "*** Testing basic operations ***\n";
134 check_basename( $file_paths );
136 echo "\n*** Testing possible variations in path and suffix ***\n";
137 check_basename( $file_path_variations );
142 *** Testing basic operations ***
240 *** Testing possible variations in path and suffix ***
297 string(10) "My Pics.gz"
300 string(10) "My Pics.gz"
309 string(10) "My Pics.gz"
312 string(10) "My Pics.gz"
315 string(10) "My Pics.gz"
318 string(10) "My Pics.gz"
321 string(10) "My Pics.gz"