0

私のURLは次のとおりです。

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 に答える