此问题已经在这里有了答案:
为什么下面的用法在单引号而不是双引号之前删除\?
更新:下面的代码有效,但当单个'或'处于首位时不起作用。是否有解决方法?
输入来自无法控制人们键入内容的表格。
$x[0] = $_POST['line1'];
$x[1] = $_POST['line2'];
$x[2] = $_POST['place'];
//check for apostrophes and quotes
for($i=0;$i<3;$i++){
while( strpos($x[$i], "\'") != false){
$pos = strpos($x[$i], "\'");
$x[$i] = substr_replace($x[$i],"",$pos,1);
}
while( strpos($x[$i], '\"') != false){
$pos = strpos($x[$i], '\"');
$x[$i] = substr_replace($x[$i],"",$pos,1);
}
摘自PHP手册-
单引号¶指定字符串的最简单方法是将其用单引号引起来(字符'
)。
要指定文字单引号,请使用反斜杠(\
)对其进行转义。要指定文字反斜杠,请将其加倍(\\
)。所有其他反斜杠实例将被视为文字反斜杠:这意味着您可能习惯的其他转义序列,例如\r
或\n
,将按指定的字面意思输出,而不具有任何特殊含义。 >
应该回答您的问题。