PHP: "\ n" ile yeni bir satır oluşturmak için çalışıyoruz

8 Cevap php

Ben bu yazıyorum:

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

ve "bar" altındaki satırda yazılı değildir.

Ben yanlış ne yapıyorum?

Javi

8 Cevap

HTML yeni satırlara değil aracılığıyla, <br> ile ifade edilir \n.

\n kaynak kodunda bir yeni satır oluşturur ve kaynak kod düzeni ekran düzenine bağlantısız.

Eğer düz metin yazmak istiyorsanız, içerik türü Content-Type: text/plain olarak ayarlanmış olduğundan emin olun gerekir. Örnek:

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

HTML ile ilgili iseniz, iki seçeneğiniz vardır. Bir (XHTML için ya da <br />) <br> kullanarak yeni bir satır vaziyettedir etmektir. Diğer bir <pre> öğesi düz metin (Bu durumda "önceden" önceden biçimlendirilmiş anlamına gelir) koymaktır.

Eğer en az iki seçeneğiniz var, bir web tarayıcısında çıktısını görüntüleme varsayarak:

  1. <pre> ifadeleri ile metin bloğunu çevreleyen

  2. Için \n bir HTML <br> etiketi (<br/> de yapacağız) değiştirin

PHP, HTML üretir. Siz isteyebilirsiniz:

echo "foo";
echo "<br />\n";
echo "bar";

Eğer düz metin akışı içine eklenecek bir yeni satır karakteri istiyorsanız o zaman işletim sistemi bağımsız, küresel PHP_EOL kullanabilirsiniz

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

Eğer sayfanın kaynak koduna baktım, HTML açısından size foo ve bar arasında satırbaşı görecekti.

Eğer, diyelim ki bir seçme kutusu için değerleri bir döngü çıkış vardır ve daha sonra kendiniz için okumak için "güzel" ya da daha kolay html kaynak kodu olan değeri ise ergo, o yararlıdır. örneğin

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

Eğer sayfanın kaynak kodunu incelemek eğer, yeni bir satıra yazılır. Eğer tarayıcıda işlendiğinde yeni bir satırda görünmesini istiyorsanız, bunun yerine bir <br /> etiketi kullanımı gerekir.

Metin satırsonu varsa, nl2br php işlevini kullanın:

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

Bu tarayıcıda iyi bakmak gerekir

Bahsedildiği değildi yana, aynı zamanda CSS white-space özelliği kullanabilirsiniz

body{
    white-space:pre-wrap;
}

Boşluk korumak için tarayıcı söyler böylece

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

Görüntülemek istiyorsunuz

hello
there