Path splitting test.
The build was successful.
Details
The build was successful.
Details
This commit is contained in:
parent
395f6c446c
commit
ec580ddf8c
|
@ -0,0 +1,32 @@
|
|||
class Program {
|
||||
|
||||
string[] parsePathComponents(string $path, bool $endSlash=true, bool $base=false) {
|
||||
string[] $retArray;
|
||||
$path = trim($path);
|
||||
string $str, $temp;
|
||||
char $char;
|
||||
for(int $x = 0; $char = $path[$x]; $x++) {
|
||||
if(!strstr('/', $char)) $temp += $char;
|
||||
else if($temp) {
|
||||
$str += $temp;
|
||||
$retArray[$temp] = $str + ($endSlash ? '/' : '');
|
||||
$str += '/';
|
||||
$temp = '';
|
||||
}
|
||||
}
|
||||
($base && $temp) ? $retArray[$temp] = $str + $temp : NULL;
|
||||
return $retArray;
|
||||
}
|
||||
|
||||
void main() {
|
||||
string $path = '/my//stupid//path/to///some/file.php';
|
||||
print_r($this->parsePathComponents($path));
|
||||
|
||||
$path = 'my/other//path/';
|
||||
print_r($this->parsePathComponents($path, false));
|
||||
|
||||
$path = '/my//other/path/to///file.php';
|
||||
print_r($this->parsePathComponents($path, true, true));
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
Array(5) {
|
||||
[my] =>
|
||||
my/
|
||||
[stupid] =>
|
||||
my/stupid/
|
||||
[path] =>
|
||||
my/stupid/path/
|
||||
[to] =>
|
||||
my/stupid/path/to/
|
||||
[some] =>
|
||||
my/stupid/path/to/some/
|
||||
}
|
||||
Array(3) {
|
||||
[my] =>
|
||||
my
|
||||
[other] =>
|
||||
my/other
|
||||
[path] =>
|
||||
my/other/path
|
||||
}
|
||||
Array(5) {
|
||||
[my] =>
|
||||
my/
|
||||
[other] =>
|
||||
my/other/
|
||||
[path] =>
|
||||
my/other/path/
|
||||
[to] =>
|
||||
my/other/path/to/
|
||||
[file.php] =>
|
||||
my/other/path/to/file.php
|
||||
}
|
Loading…
Reference in New Issue