在 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 等函数来处理字符串中的特殊字符。