PHP preg_replace URL无法正常工作

时间:2015-09-04 03:13:05

标签: php wordpress url preg-replace

我有以下网址结构:

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

谢谢!

2 个答案:

答案 0 :(得分:0)

你有一个额外的/,没有开始和结束的斜线,你从未逃过点,这意味着它可以接受点的位置。但是,这是工作代码:

$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/

答案 1 :(得分:0)

你的正则表达式可能会因为前瞻性断言而被简化一点

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

那将把所有内容都提取到正斜杠的最后一个实例。