PHP preg_replace URL not working


PHP preg_replace URL not working

我有以下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

谢谢!

你有一个额外的/,没有开始和结束斜杠,你从来没有转义点,这意味着它可以接受任何东西在点的地方。但是,下面是工作代码:

$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 = preg_replace('/.*?'/(?!.*'/)/', 'http://www.website.com/wordpress/', $cont);

这将获取到最后一个斜杠的所有内容