0

假设我的网址是:

http://www.example.com/news/media-centre/news/17/an-example-news-post/?foo=bar

我想在 PHP 中删除 URL 中的最后一个目录,所以我得到:

http://www.example.com/news/media-centre/news/17/?foo=bar

如何在确保维护任何其他 URL 参数的同时执行此操作?

我试过用这个:

$url = parse_url( $url );
$url['path'] = str_replace( strrchr($url['path'], "/"), "", $url['path'] );

但是如果最后一个目录也在路径中的其他位置,则替换会导致问题。

更不用说将 URL 重新拼接在一起似乎还有很长的路要走......

4

1 回答 1

1
$url = "http://www.example.com/news/media-centre/news/17/an-example-news-post/?foo=bar";
$info = parse_url($url);
$info["path"]=dirname($info["path"]);

$new_url = $info["scheme"]."://".$info["host"].$info["path"];
if(!empty($info["query"])) $new_url .= "?".$info["query"];
if(!empty($info["fragment"])) $new_url .= "#".$info["fragment"];
于 2012-06-29T14:11:42.963 回答