【问题标题】:PHP preg_replace URL not workingPHP preg_replace URL 不起作用
【发布时间】:2015-09-04 03:13:05
【问题描述】:

我的 URL 结构如下:

http://website.com/wordpress/2012/04/permalink-string-string/

我想摆脱/2012/04

我试过了:

$cont = preg_replace('http:\\/\\/website\\/.com\\/wordpress\\/[0-9]{4}\\/[0-9]{2}\\/', 'http://website.com/', $cont);

我双转义了反斜杠...

我尝试了其他主题的示例,但没有得到任何结果。只需清空$cont

谢谢!

【问题讨论】:

    标签: php wordpress url preg-replace


    【解决方案1】:

    你有一个额外的/,没有开始和结束的斜线,你从来没有逃脱点,这意味着它可以接受任何东西来代替点。但是,这是工作代码:

    $cont = "http://website.com/wordpress/2012/04/permalink-string-string/";
    $cont = preg_replace('/http:\/\/website\.com\/wordpress\/[0-9]{4}\/[0-9]{2}\//', 'http://website.com/', $cont);
    print_r($cont);
    

    这打印http://website.com/permalink-string-string/

    【讨论】:

    • 谢谢,但是在您的示例代码中,它可以工作,但是对于我的 $cont,这是一个很长的 HTML 代码,它不能替代...
    • 事实上,它有效!谢谢!
    【解决方案2】:

    您的正则表达式可能会通过否定前瞻断言稍微简化

    $cont = preg_replace('/.*?\/(?!.*\/)/', 'http://www.website.com/wordpress/', $cont);
    

    这将获取直到最后一个正斜杠实例的所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多