Php kapanış etiketinden sonra yeni bir satır zorlamak için bir yolu var mı?>

7 Cevap php

Ben HTML render edilecek, böylece ben onun PHP tarafından önce onu görmek gibi bir kapanış php etiketi ?> sonra çıkış için yeni satır php zorlamak için bir yol için küçük bir başarı ile online arıyor o olacak, böylece Bir sayfanın html kaynak kodunu izlerken temiz ve düzenli bir görünüm.

Ben yeni satır kaldırılması ve tamamlıyor ve bu nedenle sayfanın biçimini bozma sonraki çizgisini neden onu durdurmak istiyorum. Ben bu davranışı devre dışı bırakmak için değiştirebilirsiniz php.ini ayarı belirli bir var mı?

Bütün kod mantık dosyaları ?> onları ucundan kaldırdık yüzden alışkanlık PHP firar yeni hat şerit kodlu inanıyorum neden olan onlara ekstra satırsonlarını enjekte hakkında endişelenmenize gerek.

7 Cevap

Richard Bu diyor:

Hello <? ?>
Jello

... PHP-ayrıştırma sonra bu olur:

 Hello Jello


I just add an extra newline manually, like this:

Hello <? ?>

Jello

... Bu vererek:

Hello
Jello

Bu eski bir soru, ancak, yeni hat tutmak için sadece kapanış etiketinden sonra bir boşluk koyun.

Source: http://php.net/manual/en/language.basic-syntax.instruction-separation.php

Bu deneyebilirsiniz:

echo "output \n";

hatta bu çok daha az zarif tekniği:

echo "output
";

Daha özel bir yardım almak için bazı örnek kod parçacığını yapıştırın.

Bu davranışı değiştirmek için bir yolu yoktur. Açık ne oluyor yapmak için, ben her zaman açıkça benim şablon dosyalarında satır karakteri koydu.

Hello,    

Foo: <?php echo $foo."\n"; ?>
Bar: <?php echo $foo."\n"; ?>

This concludes foo and bar.

Çıkışlar:

Hello,    

Foo: foo
Bar: bar

This concludes foo and bar.

Her zaman sadece php etiketinden sonra bir blok seviyesi başlangıç ​​öğesi olamaz.

Bazen, bir textarea içinde düz metin üreten.

Diğer zamanlarda, size tüm HTML dizeleri üreten değildir.

  • SQL deyimi
  • E-posta gövdesinde
  • Diğer non-HTML dizeleri

Benim kompulsif alışkanlıkları benzer amaçlar için beni götürmek. Ne yazık ki, bunun için hiçbir zarif bir çözüm yoktur. İki öneri:

  1. Çıktı Bunu gibi HTML kodunu kırmak istediğiniz bir satır karakteri:

    echo 'Hello World'.chr(10);

  2. PHP'nin bunu geçersiz olamaz yani 'echo' komutu gerçek bir fonksiyonu değildir; Ancak, bir sarıcı oluşturabilir ve bunun yerine kullanın:

    function myecho($string, $newline=true)
    {
       echo $string;
       if($newline)
          echo chr(10);
    }
    

Ne çözüm zarif, ancak satır sonları eklemek yoksa sonra tekrar, ne HTML çıktı.

Bu sizin için bir sorun veriyorsa, büyük olasılıkla iyi bir HTML yazma değiliz. PHP ?> yakın etiketinden sonra sonra, HTML ayrılmış varsa, sadece bir blok seviye HTML elemanı ile başlar.

Bu gibi:

Hello <?php $php_code(); ?> <div>Something else here</div> or even <p>Something else here</p>

Hangi çıkışı olur:

Hello

Something else here

Yerine yazıyoruz eğer:

Hello <?php $php_code(); ?> Something else here

Sonra sorun HTML, PHP değil ayrıştırma yazıyoruz nasıl olduğunu.