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" 通知
我正在尝试使用 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" 通知