Menu

PHP'de Alt Satıra Geçme: \n, PHP_EOL ve nl2br

PHP'de yeni bir satır yazdırmak için çift tırnak içinde "\n" yazın veya PHP_EOL kullanın. Bir web sayfasında yeni satır görünmez, bu yüzden <br> veya nl2br() kullanın. Farkı, tek tırnak içinde '\n' ifadesinin neden çalışmadığını ve satır sonlarını bölmeyi veya silmeyi öğrenin.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Yeni bir satır yazdırmak için çift tırnaklı bir dizgenin içine \n yazın: echo "Line 1\nLine 2";. PHP_EOL sabiti aynı işi yapar ve bir satırın sonunda daha açık okunur: echo 'Done' . PHP_EOL;. Bir web sayfasında yeni satır bir satır sonu olarak görünmez; orada <br> veya nl2br() gerekir.

Tek tırnak ile çift tırnak

\n ve \t gibi kaçış dizileri yalnızca çift tırnak içinde çalışır. Tek tırnak içinde '\n' iki karakterdir: bir ters eğik çizgi ve n harfi. "\n çalışmıyor" sorununun olağan nedeni budur.

Dizgeler sayfası çift tırnağın anladığı her kaçış dizisini listeler.

PHP_EOL ile "\n" karşılaştırması

PHP_EOL PHP'nin çalıştığı sistemin satır sonudur: Linux ve macOS'ta "\n", Windows'ta "\r\n". Terminal çıktısı ve aynı makinede okuyacağınız dosyalar için kullanın. Bir biçim kendi satır sonunu tanımlıyorsa onun yerine onu kullanın: HTTP başlıkları ve e-posta "\r\n" ister, çoğu araç ise her yerde "\n" okumakta sorun yaşamaz.

"\r" bir satır başı (carriage return), "\n" bir satır beslemedir (line feed). Windows dosyaları satırları ikisiyle birden, "\r\n" ile bitirir; bir Windows kullanıcısından veya bir <textarea> alanından gelen metnin çoğu zaman beklemediğiniz \r karakterleri içermesinin nedeni budur.

HTML'de yeni satır: br ve nl2br

Bir tarayıcı yeni satırları tek bir boşluğa indirger, bu yüzden echo "a\nb" sayfada a b gösterir. Ya <br> etiketini kendiniz yazdırın ya da yeni satırları metninizde tutun ve her birinin önüne <br /> ekleyen nl2br() ile dönüştürün. Bunu çalıştırın ve Output ile Page sekmelerini karşılaştırın:

Output sekmesinde üçü de benzer görünür. Page sekmesinde ilki tek satırda birleşir, nl2br() onu böler ve <pre> yeni satırları yazıldığı gibi korur.

textarea girdisini satır sonlarıyla gösterme

Bir <textarea> alanından gelen metin kullanıcının yazdığı satırları korur, ama onu HTML'e yazdırmadan önce kaçışlamanız gerekir. Sıra önemlidir: önce htmlspecialchars(), sonra nl2br(), aksi halde <br /> etiketlerinin kendisi kaçışlanırdı. Çalıştırın, kutuya birkaç satır yazın ve Preview düğmesine basın: aynı betik $_POST doldurulmuş olarak yeniden çalışır.

Bir textarea satır sonu "\r\n" veya "\n" olarak gelebilir; ikisi de "\n" içerir, bu yüzden o karakteri saymak her iki durumda da çalışır. htmlspecialchars() burada kaçışlamanın neden isteğe bağlı olmadığını açıklar.

Bir dizgeyi yeni satıra göre bölme

explode("\n", $text) kendi oluşturduğunuz metinde çalışır. Kullanıcılardan veya dosyalardan gelen metinde satır sonları "\r\n", "\n" veya "\r" olabilir; preg_split('/\R/', $text) hepsini işler, çünkü \R her satır sonuyla eşleşir.

Bir dizgeden satır sonlarını silme

Çok satırlı bir metni tek satıra çevirmek için her tür satır sonunu değiştirin. "\r\n" değerini tek karakterlerden önce değiştirin, yoksa her Windows satır sonu iki boşluğa dönüşür:

trim() ve rtrim() bir dizgenin uçlarındaki yeni satırları siler ama ortadakileri asla silmez; bu yüzden bir dosyadan okunan bir satır için doğru, satırları birleştirmek için yanlış araçtır.

Sıkça Sorulan Sorular

PHP'de echo ile nasıl yeni satır yazdırırım?

Çift tırnaklı bir dizgenin içine \n koyun: echo "Line 1\nLine 2";. Ya da sabiti ekleyin: echo 'Line 1' . PHP_EOL;. Bir tarayıcıda yeni satır gösterilmez; orada <br> veya nl2br() kullanın.

PHP'de \n neden çalışmıyor?

Ya dizge, '\n' ifadesinin bir ters eğik çizgi ve bir n olduğu tek tırnak içindedir ya da çıktı, tarayıcının yeni satırı boşluk gibi gördüğü HTML olarak gösterilir. Metin çıktısı için çift tırnak içinde "\n", web sayfaları için nl2br() veya <br> kullanın.

PHP_EOL nedir?

PHP'nin çalıştığı işletim sisteminin satır sonunu tutan bir sabittir: Linux ve macOS'ta "\n", Windows'ta "\r\n". Terminal veya yerel dosyalar için olan çıktıda kullanın; HTTP, e-postalar ve CSV dosyalarında satır sonunu işletim sisteminden bağımsız olarak genellikle biçimin kendisi belirler.

PHP'de nl2br ne işe yarar?

nl2br($text) dizgedeki her satır sonundan önce <br /> ekler, böylece bir <textarea> içine yazılan metin HTML'de gösterildiğinde satırlarını korur. Önce kaçışlayın: nl2br(htmlspecialchars($text)).

PHP'de bir dizgeden satır sonlarını nasıl silerim?

Üç tür satır sonunu da değiştirin: str_replace(["\r\n", "\r", "\n"], ' ', $text) ya da bir regex ile preg_replace('/\R/', ' ', $text). Yalnızca sondaki yeni satırı silmek için rtrim($text, "\r\n") kullanın.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA