在 PHP 7 中,字符串转义是指将字符串中的特殊字符转换为它们的转义序列,以便在字符串中正确表示这些字符。常见的转义字符包括:
\n
:换行符\r
:回车符\t
:制表符\\
:反斜杠\$
:美元符号\"
:双引号\'
:单引号在双引号字符串中,PHP 会自动解析转义字符。例如:
$str = "这是一个包含换行符的字符串\n这是第二行。";
echo $str;
输出:
这是一个包含换行符的字符串
这是第二行。
在单引号字符串中,PHP 不会解析大多数转义字符,只有 \\
和 \'
会被解析。例如:
$str = '这是一个包含换行符的字符串\n这是第二行。';
echo $str;
输出:
这是一个包含换行符的字符串\n这是第二行。
addslashes
函数addslashes
函数可以在字符串中的特定字符前添加反斜杠,这些字符包括单引号 ('
)、双引号 ("
)、反斜杠 (\
) 和 NULL 字符 (\0
)。
$str = "这是一个'包含'特殊字符的字符串";
echo addslashes($str);
输出:
这是一个\'包含\'特殊字符的字符串
stripslashes
函数stripslashes
函数用于去除字符串中的反斜杠。
$str = "这是一个\'包含\'特殊字符的字符串";
echo stripslashes($str);
输出:
这是一个'包含'特殊字符的字符串
htmlspecialchars
函数htmlspecialchars
函数用于将特殊字符转换为 HTML 实体,以防止 XSS 攻击。
$str = "<script>alert('XSS');</script>";
echo htmlspecialchars($str);
输出:
<script>alert('XSS');</script>
htmlentities
函数htmlentities
函数将所有适用的字符转换为 HTML 实体。
$str = "<script>alert('XSS');</script>";
echo htmlentities($str);
输出:
<script>alert('XSS');</script>
nl2br
函数nl2br
函数用于将字符串中的换行符 (\n
) 转换为 HTML 的 <br>
标签。
$str = "这是一个包含换行符的字符串\n这是第二行。";
echo nl2br($str);
输出:
这是一个包含换行符的字符串<br />
这是第二行。
在 PHP 7 中,字符串转义可以通过多种方式实现,具体取决于你的需求。双引号字符串会自动解析转义字符,而单引号字符串则不会。你还可以使用 addslashes
、stripslashes
、htmlspecialchars
、htmlentities
和 nl2br
等函数来处理字符串中的特殊字符。