0

我在一个迷你 Web 应用程序中使用 addlashes() 和 stripslashes()... 转义双引号和单引号,该应用程序只是插入值并以表单形式检索这些值以进行编辑,以及用于查看属性的通用页面。最后我选择了这个函数来改变单引号和双引号:

function fixQuotes($string) {
    $string = str_replace("'", ''', $string);
    $string = str_replace('"', '"', $string);
    return $string;
}

由于我没有关于使用此方法之前发生的情况的任何详细信息,因此我无法真正问出什么问题。相反,我想知道使用此函数将单引号和双引号替换为 html 实体是否有任何缺点。

4

1 回答 1

4

你不能在不知道数据去向的情况下神奇地“修复”引号。

  1. 当您将数据插入数据库时​​,请使用数据库 API 的转义函数对其进行转义。如果您使用的是旧版 MySQL API(您不应该在新代码中使用它,因为它已被弃用),请使用mysql_real_escape_string。如果您使用的是 MySQL 改进的 API,请使用mysqli_real_escape_string。如果您使用 PDO,请使用bindValue,或使用参数执行input_parameters,或quote

  2. 当您将文本回显到 HTML 页面时,请使用htmlspecialchars

于 2013-10-08T06:13:57.240 回答