PHP:Parse_url w/ preg_replace 删除引用 URL 字符串的一部分

PHP: Parse_url w/ preg_replace to remove portion of referrer URL string

我正在尝试使用 parse_url 在 PHP 中提取 URL 的一部分,并删除 [path] if[= 的一部分30=] 它存在。

例如,如果我的 URL 是“http://localhost/website/section/type/name/”并且我想从 url [path] 中删除 /website/ 部分:

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

如果我回显 $parsed 我得到 //section/type/name/ 作为结果,而我想 return 简单地 section/type/name 作为结果当“/website/”存在于 URL 路径字符串中。我怎样才能达到这个结果?

preg_replace/ 字符视为表达式分隔符。

由于您的搜索字词不是正则表达式,您只需使用 str_replace 即可。添加 rtrim 以删除结尾的斜杠。

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

请注意,我还引用了 path 参数,以免触发 "unknown constant" 通知