Fix a notice when the path is empty

This commit is contained in:
Michael 2020-12-31 07:54:56 +00:00
parent 934f69a426
commit fec5f2c217
1 changed files with 19 additions and 17 deletions

View File

@ -1801,26 +1801,28 @@ class Probe
$hrefParts = parse_url($href); $hrefParts = parse_url($href);
// Root path case (/path) including relative scheme case (//host/path) if (!empty($hrefParts['path'])) {
if ($hrefParts['path'] && $hrefParts['path'][0] == '/') { // Root path case (/path) including relative scheme case (//host/path)
$path = $hrefParts['path']; if ($hrefParts['path'] && $hrefParts['path'][0] == '/') {
} else { $path = $hrefParts['path'];
$path = $path . '/' . $hrefParts['path']; } else {
$path = $path . '/' . $hrefParts['path'];
// Resolve arbitrary relative path // Resolve arbitrary relative path
// Lifted from https://www.php.net/manual/en/function.realpath.php#84012 // Lifted from https://www.php.net/manual/en/function.realpath.php#84012
$parts = array_filter(explode('/', $path), 'strlen'); $parts = array_filter(explode('/', $path), 'strlen');
$absolutes = array(); $absolutes = array();
foreach ($parts as $part) { foreach ($parts as $part) {
if ('.' == $part) continue; if ('.' == $part) continue;
if ('..' == $part) { if ('..' == $part) {
array_pop($absolutes); array_pop($absolutes);
} else { } else {
$absolutes[] = $part; $absolutes[] = $part;
}
} }
}
$path = '/' . implode('/', $absolutes); $path = '/' . implode('/', $absolutes);
}
} }
// Relative scheme case (//host/path) // Relative scheme case (//host/path)