让我说我的网址是:
http://www.example.com/news/media-centre/news/17/an-example-news-post/?foo=bar
我想在PHP中删除URL中的最后一个目录,所以我得到:
如何在确保维护任何其他网址参数的同时执行此操作?
我尝试过使用它:
$url = parse_url( $url );
$url['path'] = str_replace( strrchr($url['path'], "/"), "", $url['path'] );
但如果最后一个目录也在路径中的其他位置,则替换会导致问题。
更不用说将URL拼接在一起似乎是一个漫长的过程......
答案 0 :(得分: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["proto"]."://".$info["host"].$info["path"];
if(!empty($info["query"])) $new_url .= "?".$info["query"];
if(!empty($info["fragment"])) $new_url .= "#".$info["fragment"];