我希望在最后一个斜杠“/”之后退出URL。页面URL非常易变,例如:
http://mydomain.com/colors/productname.html (结果是“productname”)好的!
http://mydomain.com/colors/size/zip/shipment/ (结果是“发货”)好的!
或
http://mydomain.com/colors/ (结果为“null”)Null!
除了最后一个例子,它到目前为止运作良好。一次,在域名之后只是一个斜杠“/”,我得不到结果。
我的错误是什么?
提前致谢!
$url = "variable"
if (strpos($url,'.h') !== false) {
$url = preg_replace('/\.h.*/', '/', $url);}
$url = rtrim($url, "/");
$str = substr(strrchr($url, '/'), 1);
$str = str_replace('-',' ',$str);
$keys = str_replace('/ /', '%20', $str);
$metric = urlencode($keys);
答案 0 :(得分:2)
php已经有一个执行此功能的函数basename
$url = "http://mydomain.com/colors/";
echo basename($url);
//outputs
colors
$url = "http://mydomain.com/colors/productname.html";
echo basename($url);
//outputs
productname.html
答案 1 :(得分:2)
什么阻止您使用basename
?
<?php
$url = "http://mydomain.com/colors/";
$url = basename( $url ); //outputs "colors"
echo $url;
?>
或者,如果您不希望输出中显示“.html
”,则可以将pathinfo
与PATHINFO_FILENAME
标记一起使用
<?php
$url = "http://mydomain.com/colors.html";
$url = pathinfo( $url, PATHINFO_FILENAME ); //also outputs "colors"
echo $url;
?>