【问题标题】:php remove \ before double quote [duplicate]php删除双引号之前的\ [重复]
【发布时间】:2019-10-31 15:17:29
【问题描述】:

为什么在单引号前删除 \ 而不是双引号?

更新:下面的代码有效,但当单个 ' 或 " 在第一个位置时无效。有没有办法解决这个问题?

输入来自我无法控制人们输入内容的表单。

 $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);
      }

【问题讨论】:

  • 你也可以用引号替换你的内部循环...$x[$i] = str_replace(["\\\"","\'"], ['"', "'"], $x[$i]);
  • 刚刚检查过,for($i=0;$i&lt;3;$i++){ $x[$i] = str_replace(["\\\"","\'"], ['"', "'"], $x[$i]);} 似乎工作
  • 对此感到抱歉。我又试了一次,它就像一个魅力。您的标记为重复项也是正确的。我将 != 更改为 !== ,这也有效。谢谢

标签: php escaping quotes


【解决方案1】:

取自 PHP 手册 -

单引号¶ 指定字符串的最简单方法是将其括在单引号中(字符')。

要指定文字单引号,请使用反斜杠 (\) 对其进行转义。要指定文字反斜杠,请将其加倍 (\\)。所有其他反斜杠实例将被视为文字反斜杠:这意味着您可能习惯使用的其他转义序列,例如 \r\n,将按照指定的字面输出而不是具有任何特殊含义。

这应该可以回答你的问题。

【讨论】:

  • 不,它根本没有回答这个问题。请查看更新后的问题
猜你喜欢
  • 2014-07-18
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
相关资源
最近更新 更多