PHP Echo Satır Sonları

4 Cevap php

\ N \ r arasındaki fark (ben işletim sistemi ile bir ilgisi var biliyorum) nedir ve çapraz platform çalışacak bir satır sonu yankı için en iyi yolu nedir?

Ben böyle echoing HTML gibi şeyler için gelecekte kullanarak olacak emin değilim ama EDIT: Jarod'a yanıt olarak, ben, bir. Txt günlük dosyasına bir satır sonu yankı ths kullanarak olacak Bir sayfa üzerine makup.

4 Cevap

\ N Linux / Unix satır break

\ R klasik bir mac satır sonu olduğunu [OS X Unix \ n yukarıda kullanır]

\ R \ n bir windows satır sonu olduğunu

Ben genellikle sadece bizim Linux sistemleri üzerinde \ n kullanmak ve çoğu pencereleri yine Tamam onunla anlaşma apps

Otomatik olarak PHP komut dosyası üzerinde çalışan işletim sistemi için doğru satır sonu olarak belirlendiği, PHP_EOL sabit kullanın.

Bu sabit PHP 5.0.2 'den beri bildirildiğini unutmayın.

<?php
    echo "Line 1" . PHP_EOL . "Line 2";
?>

Geriye dönük uyumluluk için:

if (!defined('PHP_EOL')) {
    switch (strtoupper(substr(PHP_OS, 0, 3))) {
        // Windows
        case 'WIN':
            define('PHP_EOL', "\r\n");
            break;

        // Mac
        case 'DAR':
            define('PHP_EOL', "\r");
            break;

        // Unix
        default:
            define('PHP_EOL', "\n");
    }
}

Jarod cevabı çeşitli işletim yıllardan üzerinde \ r \ n doğru kullanımını içerir. İşte bazı geçmişi bulunuyor:

  • \ R, veya ondalık kodu 13 olan ASCII karakter, "satırbaşı" sonra CR adlandırılmıştır.
  • \ N, veya ondalık kodu 10 ASCII karakter, "satır besleme" sonra "satır", ya da LF adlandırılır.

Terminoloji "satırbaşı" ve "line feed back" teletypes yerine monitör ve klavye ile terminallerinin kullanıldığı zaman dayanıyor. Imleci hareket ve "satır besleme" aşağıdaki satırı üzerine almak için tamburun döndürülmesi anlamına ederken, metnin ilk sütununda dönen anlamına teletypes veya daktilo ile ilgili olarak, "satırbaşı". O zaman ayrım mantıklı. Bugün kombinasyonlar \ n, \ r, \ r \ n metin bir satır sonunu temsil tamamen keyfi vardır.

PHP4 üzerinde PHP_EOL için gerekli hiç bir geriye dönük uyumluluk.

Sürekli PHP_EOL mevcudiyetine Moore'un bildirimde düzeltmek gerekiyor: "... PHP 5.0.2 'den beri ilan edilir.".

Hayır, PHP 4.3.10 beri civarında olmuştur. Hala daha az şey çalışan herkes nasıl olsa biz de olmamalıdır. Bugün itibariyle hiç kimse PHP 5 daha az bir şey kullanarak olmalıdır!

From the PHP manual: "PHP_EOL The correct 'End Of Line' symbol for this platform. Available since PHP 4.3.10 and PHP 5.0.2".