【问题标题】:Why preg_replace return null?为什么 preg_replace 返回 null?
【发布时间】:2015-10-21 19:11:06
【问题描述】:
我有下一个代码:
CODE from debug
或:
$pattern="/?page=1/";
$url="/en/catalog/blouses.htm?page=1";
$temp = preg_replace ( $pattern, "" , $url);
//return null
但是有:
$pattern ="/&page=1/";
一切正常
【问题讨论】:
标签:
php
regex
url
get
preg-replace
【解决方案1】:
转义 ? 。因为? 是正则表达式中的一个特殊字符(作用类似于可选量词或非贪婪量词)。您需要转义该字符以匹配文字 ? 字符。
$pattern='/\?page=1/';
DEMO
【解决方案2】:
$pattern="/[&\?]page=1/";
见这里& 或?
在您的代码中搜索不存在的&。
$url="/en/catalog/blouses.htm?page=1";
$temp = preg_replace ( $pattern, "" , $url);
echo $temp;