php preg_替换

php preg_替换,php,preg-replace,Php,Preg Replace,如果url有此符号:”,它将被%27替换,url应为 但这不起作用。例如: $flr=preg\u replace(“/\\\”/”、“%22”、$flr); url替换工作正常,我得到 那么为什么第一个例子不起作用呢 要测试我正在使用的: $flr = preg_replace("/\\\'/","%27",$flr); 你的要求简单吗 如果您只想替换几个特定字符,您可能应该尝试使用str_replace()。您在PHP的引号字符串转义中遇到问题,与regex的转义混合在一起。您可能会遇到非

如果url有此符号:,它将被%27替换,url应为 但这不起作用。例如:

$flr=preg\u replace(“/\\\”/”、“%22”、$flr);

url替换工作正常,我得到

那么为什么第一个例子不起作用呢

要测试我正在使用的:

$flr = preg_replace("/\\\'/","%27",$flr);

你的要求简单吗


如果您只想替换几个特定字符,您可能应该尝试使用
str_replace()

您在PHP的引号字符串转义中遇到问题,与regex的转义混合在一起。您可能会遇到非常混乱的反斜杠序列

对于您的问题,最直接的解决方案就是在搜索双引号时在正则表达式字符串上使用单引号:

function isValidFLR(&$flr) {
  $flr = preg_replace("/\\\'/","%27",$flr);
  $flr = preg_replace("/\\\"/","%22",$flr);
  echo $flr;
  die();
}

然而,在您的情况下,一个更简单的解决方案是:在这种情况下,为什么您需要使用regex?一个简单的
str_replace()
也可以完成这项工作,并且可以避免所有那些令人毛骨悚然的斜杠。

下面我们来测试一下:

$flr = preg_replace('/\\\"/',"%22",$flr);
(将替换为

会有用的

但是,正如其他人所说,实现这一点的PHP函数之一可能是一个更好的解决方案。

为什么不试试呢
$flr = preg_replace("/\\\"/","%27",$flr);
$flr = preg_replace("/'/","%27",$flr);