-2

このような変数に2行の値を割り当てると。

$tt = 'part 1
part 2 ';

そして私はそれをエコーし​​ます。

echo $tt;

私のブラウザはそれを2行で表示しますが、問題ありません。ただし、ソースページでは、コードの2行に表示されます。

このキャリッジリターンをどのように取り除くことができますか。それはchr(13)と\ rではないので、これらは機能しません。

echo str_replace(chr(13), '-', $tt);
echo str_replace('\r', '-', $tt);

何か案が?

4

3 に答える 3

0

WindowsまたはLinuxの簡単な方法:

str_replace("\r\n", "-", $var);

Linuxでは、\ r\nは引き続き検出されます。ここで提案されている他のすべてはやり過ぎです(必ずしも間違っているとは限りませんが)。

\rや\nなどの特殊文字を使用する場合は、二重引用符を使用する必要があることに注意してください。

編集:

特に注意したい場合は、代わりにこれを使用できます。

str_replace(array("\r\n", "\n"), "-", $var);

\rや\nのように、char()関数を使用するための余分なオーバーヘッドは必要ありません。

于 2012-10-01T02:59:38.977 に答える
0

実際には、使用している環境によって異なります。Windowsでは、改行は\ r\nです。* nix環境では、\nだけです。

echo str_replace("\r", "-", str_replace("\n", "-", $tt));
于 2012-10-01T01:53:09.770 に答える
-1

あなたが試すことができます

str_replace(array(chr(13),chr(10)), "-", $tt);
于 2012-10-01T01:53:59.007 に答える