web-dev-qa-db-ja.com

PHP:「\ n」で新しい行を作成しようとしています

私はこれを書いています:

echo "foo";
echo "\n";
echo "bar";

そして、「bar」は下の行には書かれていません。

何が間違っていますか?

ハビ

26
ziiweb

HTMLの改行は、<br>ではなく\nで表されます。

PHP=で\nを使用すると、ソースコードに改行が作成され、HTMLソースコードレイアウトはHTML画面レイアウトに接続されません。

43
Tomalak

プレーンテキストストリームに改行文字を挿入する場合は、OSに依存しないグローバルPHP_EOLを使用できます

echo "foo";
echo PHP_EOL ;
echo "bar";

HTMLの用語では、ページのソースコードを見ると、fooとbarの間に改行が表示されます。

たとえば、選択ボックスの値のループなどを出力し、「よりきれいな」または後で読みやすいhtmlソースコードを持っている場合に役立ちます。例えば.

foreach( $dogs as $dog )
echo "<option>$dog</option>" . PHP_EOL ;
19
Cups

プレーンテキストを記述する場合は、コンテンツタイプがContent-Type: text/plainに設定されていることを確認する必要があります。例:

header('Content-Type: text/plain');

HTMLを扱う場合、2つのオプションがあります。 1つは、<br>(またはXHTMLの場合は<br />)を使用して新しい行を挿入することです。もう1つは、プレーンテキストを<pre>要素に配置することです(この場合、「pre」は事前にフォーマットされていることを表します)。

17
Yacoby

PHPはHTMLを生成します。あなたがしたいことがあります:

echo "foo";
echo "<br />\n";
echo "bar";
5
Daniel A. White

テキストに改行がある場合は、nl2br php関数を使用します。

<?php
$string = "foo"."\n"."bar";
echo nl2br($string);
?>

これはブラウザでよく見えるはずです

4
Andrei R

Webブラウザーで出力を表示していると仮定すると、少なくとも2つのオプションがあります。

  1. <pre>ステートメントでテキストブロックを囲みます

  2. \nをHTML <br>タグに変更します(<br/>も同様です)

3
Mark Elliot

PHPでは、\ nを改行として使用できます。

コードスニペット:

 <?php
  echo"Fo\n";
  echo"Pro";
?>

出力:

Fo
プロ

2
rashedcs

言及されていないため、CSS white-spaceプロパティも使用できます。

body{
    white-space:pre-wrap;
}

これは、空白を保持するようにブラウザに指示するので、

<body>
    <?php
        echo "hello\nthere";
    ?>
</body>

表示する

hello
there
2
Flau

ページのソースコードを調べると、新しい行に書き込まれます。ブラウザでレンダリングするときに新しい行に表示する場合は、代わりに<br />タグを使用する必要があります。

1
Matt

これは私にとって完璧に機能します...

echo nl2br("\n");

参照: http://www.w3schools.com/php/func_string_nl2br.asp

それが役に立てば幸い :)

1
Deep

この答えは非常に明白で、理解するのに永遠にかかりました:

echo "foo
bar";

ラッピングのように見えることを知っています。そうではありません。私がやったことは、文字通りヒット return foobarの間の文字列の途中。 HTMLソースに新しい行を作成し、PHPを恐ろしく見せます。これはLinux/Apacheにありました。

1
eeyore
echo "foo<br />bar";
0
McNabbToSkins

html要素の改行は、white-spaceスタイルプロパティに依存します。ほとんどの要素では、デフォルトのwhite-spaceautoです。これは、テキストが要素の幅に達したときの改行を意味します。 \nによるテキストの区切りが必要な場合は、white space: pre-lineを読み取り、行を分割する\nスタイル、またはwhite-space: preを親要素に指定する必要があります。また、\tなども読み取ります。注:\nを文字列ではなくブレークラインとして書き込むには、使用しない場合は二重引用符で囲まれた文字列("\n")を使用する必要があります。空白、常に改行のHTML要素を使用することを歓迎します。これは<br/>です

0

2つのタイプを使用して\nをphpに適用できます

  1. CSSを使用する

    body {
        white-space: pre-wrap;
    }
    

    これは、空白を保持するようにブラウザに指示するので、

    <body>
        <?php
            echo "Fo\n Pro";
        ?>
    </body>
    

    結果:

    Fo
    プロ

  2. nl2brを使用

    nl2br:文字列のすべての改行の前にHTML改行を挿入します

    <?php
        echo nl2br("Fo.\nPro.");
    ?>
    

    結果

    Fo。
    プロ。

0
Amit Punia