首页 > 代码库 > htmlspecialchars()和htmlspecialchars_decode()

htmlspecialchars()和htmlspecialchars_decode()

htmlspecialchars_decode() 函数是 htmlspecialchars() 函数的反函数。

 

htmlspecialchars() 可以拿来防止XSS;可参考:https://www.zhihu.com/question/27646993

 

htmlspecialchars_decode() 函数

技术分享

更多实例

例子 1

把预定义的 HTML 实体转换为字符:

<?php
$str = "Bill & ‘Steve‘";
echo htmlspecialchars_decode($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo htmlspecialchars_decode($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlspecialchars_decode($str, ENT_NOQUOTES); // 不转换任何引号
?>

以上代码的 HTML 输出如下(查看源代码):

<!DOCTYPE html>
<html>
<body>
Bill & &#039;Steve&#039;<br>
Bill & ‘Steve‘<br>
Bill & &#039;Steve&#039;
</body>
</html>

以上代码的浏览器输出:

Bill & ‘Steve‘
Bill & ‘Steve‘
Bill & ‘Steve‘

例子 2

把预定义 HTML 实体转换为双引号:

<?php
$str = ‘I love "PHP".‘;
echo htmlspecialchars_decode($str, ENT_QUOTES); // 转换双引号和单引号
?>

以上代码的 HTML 输出如下(查看源代码):

<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>

以上代码的浏览器输出:

I love "PHP".


htmlspecialchars() 函数:

技术分享

技术分享

技术分享

 

更多实例

例子 1

把一些预定义的字符转换为 HTML 实体:

<?php
$str = "Bill & ‘Steve‘";
echo htmlspecialchars($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // 不转换任何引号
?>

以上代码的 HTML 输出如下(查看源代码):

<!DOCTYPE html>
<html>
<body>
Bill &amp; ‘Steve‘<br>
Bill &amp; &#039;Steve&#039;<br>
Bill &amp; ‘Steve‘
</body>
</html>

以上代码的浏览器输出:

Bill & ‘Steve‘
Bill & ‘Steve‘
Bill & ‘Steve‘

htmlspecialchars()和htmlspecialchars_decode()