单引号和双引号问题

时间:2013-10-08 05:49:58

标签: php

我正在努力逃避使用addslashes()和stripslashes()的双引号和单引号在一个迷你Web应用程序中,它只是插入值并在表单中检索这些值以进行编辑,以及要查看的常规页面属性。最后,我决定使用此函数来更改单引号和双引号:

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

由于我没有任何关于使用此方法之前发生的事情的细节,我真的不能问出错了什么。相反,我想知道使用此函数用html实体替换单引号和双引号是否有任何缺点。

1 个答案:

答案 0 :(得分:4)

如果不知道数据的来源,你不能只是神奇地“修复”引号。

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

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