//remove line breaks
function safeEmail($string) {
return preg_replace( '((?:\n|\r|\t|%0A|%0D|%08|%09)+)i' , '', $string );
}
/*** example usage 1***/
$from = 'HTML Email\r\t\n';
/*** example usage 2***/
$from = "HTML Email\r\t\n";
if(strlen($from) < 100)
{
$from = safeEmail($from);
echo $from;
}
1返回HTML Email \ r \ t \ n while 2返回HTML电子邮件
引号是什么?
答案 0 :(得分:11)
与双引号和heredoc语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会被扩展。
换句话说,双引号字符串扩展特殊字符的变量和转义序列。单引号字符串不会。
所以在example1中,使用单引号字符串,字符串就像你看到的那样。斜线和所有。
但是在example2中,它不是以字符串\r\t\n
结尾,而是以回车符,制表符和新行结束。换句话说,扩展了特殊字符的转义序列。
答案 1 :(得分:0)
在PHP中使用单引号将那些特殊字符作为\ n \ r \ t ... ...不能按预期工作。 根据{{3}}:
要指定文字单引号,请使用反斜杠(
\
)对其进行转义。指定文字 反斜杠,加倍(\\
)。反斜杠的所有其他实例将被视为文字 反斜杠:这意味着您可能习惯的其他转义序列,例如\r
或\n
,将按照字面意思输出,而不是具有任何特殊含义。