2017-11-09 16 views
1

parse_urlを使用してURLの一部を抽出し、がある場合は[path]の一部を削除しようとしています。例えばPHP:Parse_urlリファラーURL文字列の一部を削除するためにpreg_replace

、私のURLは「http://localhost/website/section/type/name/」であると私は、URL [path]から/website/部分を削除する場合:私は$parsedをエコーし​​た場合、私が好きなのに対し

$url = wp_get_referer(); // using WordPress to get referring URL 
$parsed = parse_url($url); 
$parsed = preg_replace('/website/', '', $parsed[path]); 

は、私は、結果として//section/type/name/を取得URLパス文字列に "/ website /"がある場合、結果として単純にsection/type/nameを返します。この結果はどのように達成できますか?

答えて

3

preg_replaceは、/文字を表現区切り文字として扱います。

検索キーワードが正規表現ではないため、代わりにstr_replaceを使用してください。末尾のスラッシュを削除するには、rtrimを追加します。 「未知の定数」予告

+0

ああをトリガしないように、私もpathパラメータを引用しました

$parsed = rtrim(str_replace('/website/', '', $parsed['path']), '/'); 

注意!ありがとう! 'preg_replace'は後続のスラッシュを削除する必要がありますか? – nickpish

+0

@nickpishあなたは単に 'rtrim'を使うことができます。私は私の答えにそれを追加します – Phil

+0

ファンタスティック - ありがとう! – nickpish

関連する問題