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

标签 php replace user-input quotes

我有这个:

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

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

我试过了,但没用:

$inputData['title'] = str_replace('"', '', $_POST['title']);

最佳答案

如果我对问题的理解正确,你想从 $inputData['title'] 中删除 ",这样你的 HTML 代码就不会乱了吗?

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


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

例如:

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

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

一般来说,无论您使用哪种输出格式,您都应该始终对作为输出发送的数据进行转义。

例如:

  • 如果您要生成一些 XML 或 HTML,您应该使用 htmlspecialchars
  • 如果你正在生成一些 SQL,你应该使用 mysql_real_escape_string ,或等效物,具体取决于您使用的数据库类型

关于php - 如何使用 PHP 从输入框中删除引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284130/

相关文章:

php - Laravel 根据距离对用户集合进行排序

c++ - 如何替换文本文件中的多个字符串? C++

python更改某些两个单词之间的字符串

java - 如何在 IDEA 中创建结构替换以向类添加缺少的注释

java - 如何根据用户输入使这些循环继续?在java eclipse中

php - 嵌套 while 循环不适用于 mysql 数据库查询

php - 多级登录 codeigniter 未成功重定向

php - 如何让数组和 session 变量在浏览器刷新后恢复为空白?

java - 使用字符串输入作为 boolean 值

控制台应用程序的 C# 箭头键输入