str_replace()仅使用单引号

时间:2012-10-28 09:36:54

标签: php str-replace

我遇到了一个简单的问题,经过很长一段时间试图找出问题,我发现str_replace不能用简单的引号。这是我的代码:

<?php
$replaceNL1=str_replace("\n", "NEWLINE", $_POST['txt']);
echo $replaceNL1;
$replaceNL2=str_replace('\n', 'NEWLINE', $_POST['txt']);
echo '<hr>' . $replaceNL2;
?>

$replaceNL2进行替换。在第一个变量上,它就像没有任何str_replace()一样。这从未发生在我身上。

我使用的是UTF-8字符集。

2 个答案:

答案 0 :(得分:6)

单引号和双引号在PHP中是不同的。

PHP Strings

  

单引号

     

指定字符串的最简单方法是将其用单引号括起来   (角色')。

     

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

所以"\n"是换行符,而'\n'是两个字符(文字\n),没有特殊含义。

答案 1 :(得分:3)

"\n" - String that contains newline character
'\n' - String that contains two characters, a backslash \ and the letter n

所以你刚刚在php中发现了单引号和双引号之间的区别。