【问题标题】:PHP: Parse_url w/ preg_replace to remove portion of referrer URL stringPHP: Parse_url w/preg_replace 删除引用 URL 字符串的一部分
【发布时间】:2017-11-10 07:30:58
【问题描述】:

我正在尝试使用 parse_url 在 PHP 中提取部分 URL,并删除部分 [path] 如果它存在。

例如,如果我的网址是“http://localhost/website/section/type/name/”并且我想从网址[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/,而当URL 路径字符串中出现“/website/”时,我想简单地返回section/type/name。我怎样才能达到这个结果?

【问题讨论】:

    标签: php preg-replace parse-url


    【解决方案1】:

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

    由于您的搜索词不是正则表达式,您可以简单地使用 str_replace 代替。添加 rtrim 以删除尾部斜杠。

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

    请注意,我还引用了path 参数,以免触发“未知常量”通知

    【讨论】:

    • 啊!好的谢谢! preg_replace 是否需要删除尾部斜杠(如果存在)?
    • @nickpish 你可以简单地使用rtrim。我会把它添加到我的答案中
    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    相关资源
    最近更新 更多