php单引号和双引号

时间:2011-01-03 11:57:05

标签: php

//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电子邮件

引号是什么?

2 个答案:

答案 0 :(得分:11)

根据PHP Documentation

  

与双引号和heredoc语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会被扩展。

换句话说,双引号字符串扩展特殊字符的变量和转义序列。单引号字符串不会。

所以在example1中,使用单引号字符串,字符串就像你看到的那样。斜线和所有。

但是在example2中,它不是以字符串\r\t\n结尾,而是以回车符,制表符和新行结束。换句话说,扩展了特殊字符的转义序列。

答案 1 :(得分:0)

在PHP中使用单引号将那些特殊字符作为\ n \ r \ t ... ...不能按预期工作。 根据{{​​3}}:

  

要指定文字单引号,请使用反斜杠(\)对其进行转义。指定文字   反斜杠,加倍(\\)。反斜杠的所有其他实例将被视为文字   反斜杠:这意味着您可能习惯的其他转义序列,例如\r或   \n,将按照字面意思输出,而不是具有任何特殊含义。