1

次のスクリプトは、array名前付きのからの文字列を出力しますarr。からのエコーの後、arrを使用して改行を挿入しようとしました\nが、表示されません。何故ですか ?

<?php
$arr = array("ghazal","shayari","silence","hayaat");
echo $arr[0];
echo $arr[1];
foreach($arr as $var) {
  echo $var;
  echo "\n";
}
4

5 に答える 5

2

\nHTMLでは、ブラウザは改行を表示しません。ソースコードを見ると、それらが表示されているのがわかります。PHP関数<br>を使用するnl2brか、スクリプトを次のように変更することで、これらを変換できます。

<?php
$arr = array("ghazal","shayari","silence","hayaat");
echo $arr[0];
echo $arr[1];
foreach($arr as $var) {
  echo $var;
  echo "\n";
}

これに:

<?php
$arr = array("ghazal","shayari","silence","hayaat");
echo $arr[0];
echo $arr[1];
foreach($arr as $var) {
  echo $var;
  echo "<br>";
}

これがうまくいかない場合は、いつでもpreHTMLタグを使用できます。preタグは\n改行を保持し、それらを表示します。

これが役立つ場合は、この質問の横にあるチェックをクリックして、この回答に正解のマークを付けてください。

ありがとう。:)

于 2013-01-18T03:43:50.003 に答える
2

HTMLは、任意の数のすべての空白文字を同じように扱います。

つまり、以下はすべてブラウザ内の単一のスペースとしてレンダリングされます。

echo "\n";
echo "\t";
echo "         ";
echo "  \n\n\n  ";

HTMLで実際のリンクブレークをレンダリングするには<br>ドキュメントに要素を挿入する必要があります。

于 2013-01-18T03:46:57.153 に答える
1

おそらく、PHPスクリプトは、Webブラウザで表示されるHTMLを生成しています。そして、私たちが知っているように、HTMLの余分な空白は画面に表示されません。

プレーンテキスト()を生成するか、HTMLで改行をレンダリングするもの(例)header("Content-type: text/plain")の代わりに出力します。'\n'<br />

于 2013-01-18T03:50:04.990 に答える
0

これはうまくいくはずです

foreach($arr as $var) {
  echo $var;
  echo "<br />";
}

HTMLセクション<br />では改行が機能するため\n、ブラウザ側からHTMLのソースコードを表示したときにも機能し、改行が表示されます。

于 2013-01-18T03:41:06.560 に答える
0

改行はHTMLで。を使用してレンダリングされるため<br />です。代わりにこれを行ってください。

foreach($arr as $var) {
    echo $var, '<br />';
}

別の方法は、出力をでラップする<pre></pre>ことです。これは、現在行っていることのように空白と改行を評価します。

于 2013-01-18T03:42:42.520 に答える