如何使用PHP从输入框中删除引号

如何使用PHP从输入框中删除引号,php,replace,user-input,quotes,Php,Replace,User Input,Quotes,我有这个: <input name="title" type="text" class="inputMedium" value="' . $inputData['title'] . '" /> 我想从用户输入中删除引号,以便如果有人输入以下内容: “这是我的标题”它不会弄乱我的代码 我试过这个,但不起作用: $inputData['title']=str_replace('''','',$\u POST['title']);用户输入应通过htmlspecialchars()运行

我有这个:

<input name="title" type="text" class="inputMedium" value="' . $inputData['title'] . '" />

我想从用户输入中删除引号,以便如果有人输入以下内容: “这是我的标题”它不会弄乱我的代码

我试过这个,但不起作用:
$inputData['title']=str_replace('''','',$\u POST['title']);

用户输入应通过
htmlspecialchars()
运行,以便在这种情况下使用。

我强烈建议您使用htmlentities('string,entu QUOTES)在显示用户在任何地方生成的任何内容之前…

如果我正确理解了问题,您想从
$inputData['title']
中删除
,这样您的HTML代码就不会出错

如果是这样,“正确”的解决方案不是删除双引号,而是在实际输出之前对双引号进行转义


考虑到您正在生成HTML,您应该使用函数;这样,双引号(和几个其他字符)将被编码为HTML实体,并且在注入HTML标记时不会造成任何问题

例如:

echo '<input name="title" type="text" class="inputMedium" value="'
   . htmlspecialchars($inputData['title'])
   . '" />';
echo';
注意:根据您的情况(特别是您可能使用的编码/字符集),您可能需要向
htmlspecialchars
传递一些附加参数


一般来说,无论输出格式是什么,都应该转义作为输出发送的数据

例如:

echo '<input name="title" type="text" class="inputMedium" value="'
   . htmlspecialchars($inputData['title'])
   . '" />';
  • 如果您正在生成一些XML或HTML,那么应该使用
  • 如果要生成一些SQL,则应使用SQL或等效SQL,具体取决于所使用的数据库类型

刚刚注意到:可以在输入html中使用单引号而不是双引号(如)。但由于htmlspecialchars不使用单引号,这可能是一个安全漏洞?htmlspecialchars对我来说不起作用,只有htmlspecialchars()起作用。问题是由于某种原因,htmlentities无法正确处理重音