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

时间:2010-02-17 20:27:07

标签: php replace user-input quotes

我有这个:

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

我想从用户输入中删除引号,以便在有人输入以下内容时: “这是我的头衔”它不会搞砸我的代码。

我试过这个并且它不起作用:     $ inputData ['title'] = str_replace(''','',$ _POST ['title']);

3 个答案:

答案 0 :(得分:5)

如果我正确理解了这个问题,您想要从"删除$inputData['title'],这样您的HTML代码就不会搞砸了吗?

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


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

例如:

echo '<input name="title" type="text" class="inputMedium" value="'
   . htmlspecialchars($inputData['title'])
   . '" />';

注意:根据您的情况(尤其是关于您可能正在使用的编码/字符集),您可能会将一些额外的参数传递给htmlspecialchars


一般来说,无论您使用何种输出格式,都应始终将输出的数据作为输出转义。

例如:

答案 1 :(得分:1)

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

答案 2 :(得分:-2)

我强烈建议您在显示用户生成的任何内容之前使用 htmlentities($ string,ENT_QUOTES) ...