PHP中常用的转义函数


在PHP中,常用的转义函数主要包括以下几个:

1. **`addslashes()`** - 这个函数用于在预定义的字符前添加反斜杠。这些预定义的字符是:单引号(')、双引号(")、反斜杠(\)和 NULL(NULL 字符)。这个函数经常用于处理用户输入,以防止SQL注入等安全问题。


   $str = "Is your name O'reilly?";
   echo addslashes($str); // 输出:Is your name O\'reilly?
   

2. **`htmlspecialchars()`** - 将特殊字符转换为 HTML 实体。这有助于防止跨站脚本攻击(XSS)。它转换的字符包括:&(和号)、"(双引号)、'(单引号)、<(小于)、>(大于)。


   echo htmlspecialchars('<a href="test.php">Test</a>', ENT_QUOTES, 'UTF-8');
   // 输出:<a href="test.php">Test</a>
   

3. **`htmlentities()`** - 将所有的字符都转换为 HTML 实体。这个函数比 `htmlspecialchars()` 转换的字符更多,包括空格也会被转换。


   $str = "A 'quote' is <b>bold</b>";
   echo htmlentities($str, ENT_QUOTES, 'UTF-8');
   // 输出:A 'quote' is <b>bold</b>
   

4. **`stripslashes()`** - 去除字符串中的反斜杠。这个函数通常用于清理通过 `addslashes()` 函数处理过的字符串,以便存储到数据库后能够正确显示。


   echo stripslashes("Is your name O\'reilly?"); // 输出:Is your name O'reilly?
   

5. **`strip_tags()`** - 剥去字符串中的 HTML 和 PHP 标签。这个函数经常用于用户评论或留言的处理,以防止XSS攻击。


   echo strip_tags('<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>');
   // 输出:Test paragraph. Other text
   

这些函数在处理用户输入、生成安全的HTML输出以及数据清洗时非常有用。