Php 替换文本反斜杠和单引号

Php 替换文本反斜杠和单引号,php,regex,preg-replace,symbols,php-5.2,Php,Regex,Preg Replace,Symbols,Php 5.2,获取\u魔术\u报价\u gpc为0 如果我使用preg_替换这些阵列: $replace[0]=">"; $replace[1]="<"; $replace[2]="&"; $replace[3]='"'; $pattern[0]="#&gt;#"; $pattern[1]="#&lt;#"; $pattern[2]="#&amp;#"; $pattern[3]="#&quot;#"; $pass=preg_replace($patte

获取\u魔术\u报价\u gpc为0

如果我使用preg_替换这些阵列:

$replace[0]=">";
$replace[1]="<";
$replace[2]="&";
$replace[3]='"'; 

$pattern[0]="#&gt;#";
$pattern[1]="#&lt;#";
$pattern[2]="#&amp;#";
$pattern[3]="#&quot;#";

$pass=preg_replace($pattern, $replace, $pass);
但它失败了


我使用的是php5.2

您的模式可能无法工作,因为您的模式分隔符与模式中的冲突。您的$pattern[5]模式应该适合您。这可能是测试过程中的一个简单错误

以下代码将使用常用且不冲突的斜杠/作为分隔符替换字符数组:

输出:

'Th&#92;is &lt; is &amp; a &gt; sample &quot;string&#39;'
Th\is < is & a > sample "string'

此代码的目的是什么?我非常关心它的应用。魔术语录被删除的原因是:它们是一个极其糟糕的主意。这与SQL转义有关吗?如果是这样,请使用带有占位符值的准备好的语句,并且永远不要这样做。请参阅,以获取有关此问题和其他问题的建议。我在某个地方读到,mysqli和prepared语句可以在PHP版本5或更高版本上使用,并使用MySQL 4.1.3+。如果您的环境不支持此功能,那么肯定是时候升级了。htmlspecialchars将为您完成此功能。。。
$pattern[0]="/&gt;/";
$pattern[1]="/&lt;/";
$pattern[2]="/&amp;/";
$pattern[3]="/&quot;/";
$pattern[4]="/&#39;/";
$pattern[5]="/&#92;/";

$replace[0]=">";
$replace[1]="<";
$replace[2]="&";
$replace[3]='"';
$replace[4]="'";
$replace[5]="\\";

$pass="Th&#92;is &lt; is &amp; a &gt; sample &quot;string&#39;";
var_export($pass);
echo "\n";
echo preg_replace($pattern, $replace, $pass);
'Th&#92;is &lt; is &amp; a &gt; sample &quot;string&#39;'
Th\is < is & a > sample "string'