2

我想在最后一个斜杠“/”文本之后退出 URL。页面 URL 变化很大,例如:

http://mydomain.com/colors/productname.html (结果是“productname”)好的!

http://mydomain.com/colors/size/zip/shipment/ (结果是“shipment”)OK!

或者

http://mydomain.com/colors/ (结果为“空”)空!

到目前为止,除了最后一个示例外,它运行良好。曾经,域名后面只有一个斜杠“/”,我没有得到任何结果。

我的错误是什么?

提前致谢!

$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);
4

2 回答 2

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
于 2013-08-24T10:45:34.487 回答
2

是什么阻止你使用basename

<?php
  $url  = "http://mydomain.com/colors/";
  $url  = basename( $url ); //outputs "colors"
  echo $url;
?>

或者,如果您不想.html在输出中使用“”,则可以使用pathinfowith PATHINFO_FILENAMEflag

<?php
  $url  = "http://mydomain.com/colors.html";
  $url  = pathinfo( $url, PATHINFO_FILENAME ); //also outputs "colors"
  echo $url;
?>
于 2013-08-24T10:46:02.683 回答