2

textarea html要素内に表示される多くの情報を含むphp文字列があります。

そのテキストエリアにも、それを生成するスクリプト (もしあれば) にもアクセスできません。

$somestring = 'first line \nSecond line \nThird line.';

$somestring は、trim または filter_var で「機能」していません。何もない。

テキストフィールドでは、 \n がテキストエリアに表示されるため、解釈されません。

これらの新しい行を適用するにはどうすればよいですか?

前もって感謝します。

4

3 に答える 3

7

$ somestringを'(一重引用符)ではなく "(二重引用符)でラップしてみてください

于 2010-09-09T13:35:21.733 に答える
3

\n\rおよびその他のバックスラッシュ エスケープ文字は、二重引用符とヒアドキュメントでのみ機能します。一重引用符と nowdoc (ヒアドキュメントの一重引用符バージョン) では、リテラルとして読み取られ\n\r.

例:

<?php
echo "Hello\nWorld"; // Two lines: 'Hello' and 'World'
echo 'Hello\nWorld'; // One line: literally 'Hello\nWorld'
echo <<<HEREDOC
Hello\nWorld
HEREDOC; // Same as "Hello\nWorld"
echo <<<'NOWDOC'
Hello\nWorld
NOWDOC; // Same as 'Hello\nWorld' - only works in PHP 5.3.0+

この動作について詳しくは、PHP マニュアルを参照してください。


編集:
一重引用符と二重引用符の動作が異なる理由は、両方が異なる状況で必要になるためです。

たとえば、多くの改行を含む文字列がある場合は、二重引用符を使用します。

echo "This\nstring\nhas\na\nlot\nof\nlines\n";

ただし、ファイル名 (Windows の場合) や正規表現など、多くのバックスラッシュを含む文字列を使用する場合は、一重引用符を使用して単純化し、バックスラッシュのエスケープを忘れることによる予期しない問題を回避します。

echo "C:\this\will\not\work"; // Prints a tab instead of \t and a newline instead of \n
echo 'C:\this\would\work'; // Prints the expected string

echo '/regular expression/'; // Best way to write a regular expression
于 2010-09-09T13:44:23.603 に答える
1
$somestring = "first line \nSecond line \nThird line.";

http://php.net/types.string <--この記事を読む
ことは PHP の知識の基礎であり、それなしでは PHP を使用することは不可能です。
クイック リファレンス用のほとんどのマニュアル ページとは異なり、このページはすべての開発者が暗記する必要があるページです。

于 2010-09-14T01:34:13.553 に答える