php htmlentities作用 - 如何扭转htmlentities()?




htmlspecialchars区别 html标签 (5)

我想你正在寻找php.net/manual/en/function.html-entity-decode.php

对于像áéí这样的特殊字符,我可以调用htmlentities()

$mycaption = htmlentities($mycaption, ENT_QUOTES);

要获取相应的html实体:

áéí

我怎样才能将其反转回áéí




如果使用htmlentities()进行编码,则可以使用html_entity_decode()来反转该过程:

html_entity_decode()

将所有HTML实体转换为适用的字符。

html_entity_decode()htmlentities()相反,它将字符串中的所有HTML实体转换为适用的字符。

例如

$myCaption = 'áéí';

//encode
$myCaptionEncoded = htmlentities($myCaption, ENT_QUOTES);

//reverse (decode)
$myCaptionDecoded = html_entity_decode($myCaptionEncoded);

我使用三种不同的方法来防止我的Web应用程序容易受到SQL注入的攻击。

  1. 使用的mysql_real_escape_string(),这是一个预先定义的函数PHP,这代码添加反斜杠以下字符:\x00\n\r\'"\x1a。将输入值作为参数传递,以最大限度地减少SQL注入的可能性。
  2. 最先进的方法是使用PDO。

我希望这能帮到您。

请考虑以下查询:

$iId = mysql_real_escape_string("1 OR 1=1"); $sSql = "SELECT * FROM table WHERE id = $iId";

mysql_real_escape_string()不会在这里保护。如果你在查询中的变量周围使用单引号('')可以保护你不受此影响。以下是针对此的解决方案:

$iId = (int) mysql_real_escape_string("1 OR 1=1"); $sSql = "SELECT * FROM table WHERE id = $iId";

这个question有一些很好的答案。

我建议,使用PDO是最好的选择。

编辑:

mysql_real_escape_string()自PHP 5.5.0起不推荐使用。使用mysqli或PDO。

mysql_real_escape_string()的替代方法是

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

例:

$iId = $mysqli->real_escape_string("1 OR 1=1");
$mysqli->query("SELECT * FROM table WHERE id = $iId");






php html-encode