Php 替换文本反斜杠和单引号
获取\u魔术\u报价\u gpc为0 如果我使用preg_替换这些阵列: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]="#>#"; $pattern[1]="#<#"; $pattern[2]="#&#"; $pattern[3]="#"#"; $pass=preg_replace($patte
$replace[0]=">";
$replace[1]="<";
$replace[2]="&";
$replace[3]='"';
$pattern[0]="#>#";
$pattern[1]="#<#";
$pattern[2]="#&#";
$pattern[3]="#"#";
$pass=preg_replace($pattern, $replace, $pass);
但它失败了
我使用的是php5.2您的模式可能无法工作,因为您的模式分隔符与模式中的冲突。您的$pattern[5]模式应该适合您。这可能是测试过程中的一个简单错误 以下代码将使用常用且不冲突的斜杠/作为分隔符替换字符数组: 输出:
'Th\is < is & a > sample "string''
Th\is < is & a > sample "string'
此代码的目的是什么?我非常关心它的应用。魔术语录被删除的原因是:它们是一个极其糟糕的主意。这与SQL转义有关吗?如果是这样,请使用带有占位符值的准备好的语句,并且永远不要这样做。请参阅,以获取有关此问题和其他问题的建议。我在某个地方读到,mysqli和prepared语句可以在PHP版本5或更高版本上使用,并使用MySQL 4.1.3+。如果您的环境不支持此功能,那么肯定是时候升级了。htmlspecialchars将为您完成此功能。。。
$pattern[0]="/>/";
$pattern[1]="/</";
$pattern[2]="/&/";
$pattern[3]="/"/";
$pattern[4]="/'/";
$pattern[5]="/\/";
$replace[0]=">";
$replace[1]="<";
$replace[2]="&";
$replace[3]='"';
$replace[4]="'";
$replace[5]="\\";
$pass="Th\is < is & a > sample "string'";
var_export($pass);
echo "\n";
echo preg_replace($pattern, $replace, $pass);
'Th\is < is & a > sample "string''
Th\is < is & a > sample "string'