我一直在尝试使用各种字符串操作函数获取URL的第一个子目录,并且遇到了很多麻烦。我想知道是否有人知道一个简单的方法来实现这一目标?
我感谢任何建议,提前谢谢!
http://www.domain.com/pages/images/apple.png //output: pages
www.domain.com/pages/b/c/images/car.png // output: pages
domain.com/one/apple.png // output: one
答案 0 :(得分:3)
您可以使用php函数parse_url();
$url = 'domain.com/one/apple.png';
$path = parse_url($url, PHP_URL_PATH);
$firstSubDir = explode('/', $path)[1]; // [0] is the domain [1] is the first subdirectory, etc.
echo $firstSubDir; //one
答案 1 :(得分:0)
function startsWith($haystack, $needle)
{
return $needle === "" || strpos($haystack, $needle) === 0;
}
$url = "http://www.domain.com/pages/images/apple.png";
$urlArr = explode('/', $url);
echo (startsWith($url, 'http')) ? $urlArr[3] : $urlArr[1]; // Should echo 'pages'
以上内容适用于有和没有' http'作为url-prefix case。
答案 2 :(得分:0)
从URL获取第一条路径的替代函数(包含或不包含scheme
)。
function domainpath($url = '')
{
$url = preg_match("@^https?://@", $url) ? $url : 'http://' . $url;
$url = parse_url($url);
$explode = explode('/', $url['path']);
return $explode[1];
}
echo domainpath('http://www.domain.com/pages/images/apple.png');
echo domainpath('https://domain.com/pages/images/apple.png');
echo domainpath('www.domain.com/pages/b/c/images/car.png');
echo domainpath('domain.com/one/apple.png');