-1

私は単純なことで問題を抱えていました。長い間問題を見つけようとした後、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 文字セットを使用しています。

4

2 に答える 2

6

PHP では、一重引用符と二重引用符は別のものです。

PHP 文字列:

一重引用符

文字列を指定する最も簡単な方法は、一重引用符 (文字 ') で囲むことです。

リテラルの一重引用符を指定するには、バックスラッシュ () でエスケープします。リテラルのバックスラッシュを指定するには、二重にします (\)。バックスラッシュの他のすべてのインスタンスは、リテラルのバックスラッシュとして扱われます。これは、\r や \n など、慣れている可能性のある他のエスケープ シーケンスが、特別な意味を持つのではなく、指定されたとおりに文字どおりに出力されることを意味します。

"\n"改行文字もそうですが、特別な意味のない'\n'2 文字 (文字通り) です。\n

于 2012-10-28T09:39:39.157 に答える
3
"\n" - String that contains newline character
'\n' - String that contains two characters, a backslash \ and the letter n

これで、php のシングル クォーテーションとダブル クォーテーションの違いがわかりました。

于 2012-10-28T09:39:54.863 に答える