Di PHP saya mencoba membuat karakter baris baru:
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';
Setelah itu saya membuka file yang dibuat di Notepad dan menulis baris baru secara harfiah:
1 John Doe \ r \ n 1 John Doe \ r \ n 1 John Doe \ r \ n
Saya sudah mencoba banyak variasi \r\n
, tetapi tidak ada yang berhasil. Mengapa baris baru tidak berubah menjadi baris baru?
php
string-interpolation
davidjhp
sumber
sumber
Jawaban:
Hanya string yang dikutip ganda menafsirkan urutan pelarian
\r
dan\n
masing-masing sebagai '0x0D' dan '0x0A', jadi Anda ingin:String dikutip tunggal , di sisi lain, hanya tahu urutan melarikan diri
\\
dan\'
.Jadi, kecuali Anda menggabungkan string yang dikutip tunggal dengan satu baris yang dihasilkan di tempat lain (misalnya, menggunakan string ganda yang dikutip
"\r\n"
atau menggunakanchr
fungsichr(0x0D).chr(0x0A)
), satu-satunya cara lain untuk memiliki garis yang pecah dalam string tunggal yang dikutip adalah dengan mengetikkannya secara harfiah dengan editor Anda:Pastikan untuk memeriksa editor Anda untuk pengaturan pemecah barisnya jika Anda memerlukan beberapa urutan karakter tertentu (
\r\n
misalnya).sumber
PHP_EOL
bukannyaGunakan
PHP_EOL
konstanta yang telah ditentukan :Nilai konstan akan ditetapkan sesuai dengan ujung jalur sistem operasi tempat PHP dijalankan. Di Linux, itu akan menjadi
"\n"
; pada Windows, itu akan menjadi"\r\n"
.sumber
Perintah "echo" dalam PHP mengirimkan output ke browser sebagai html mentah sehingga meskipun dalam tanda kutip ganda browser tidak akan menguraikannya menjadi dua baris karena karakter baris baru dalam HTML tidak berarti apa-apa. Itu sebabnya Anda harus menggunakan:
saat menggunakan "echo", atau sebaliknya menggunakan fwrite ...
Ini akan menampilkan baris HTML baru sebagai pengganti "\ n".
sumber
Gunakan PHP_EOL yang konstan untuk mendapatkan karakter yang tepat, apa pun platformnya.
http://us3.php.net/manual/en/reserved.constants.php
Contoh penggunaan sederhana:
sumber
String antara tanda kutip ganda
""
interpolasi, artinya mereka mengkonversi karakter yang lolos menjadi karakter yang dapat dicetak.String antara tanda kutip tunggal
''
adalah literal, artinya mereka diperlakukan persis seperti karakter yang diketikkan.Anda dapat memiliki keduanya di baris yang sama:
output:
sumber
echo "$clientid $lastname\r\n"
Anda harus menggunakan ini:
Anda juga mungkin ingin melihat PHP EOL .
sumber
Sebenarnya
\r\n
untuk sisi html dari output. Dengan karakter itu, Anda bisa membuat baris baru di kode html agar lebih mudah dibaca:akan menampilkan:
yang melihat halaman adalah:
Jika Anda benar-benar memaksudkan ini, Anda hanya perlu memperbaiki kutipan tunggal dengan kutipan "":
Kalau tidak, jika Anda bermaksud membagi teks, dalam sampel kami 'Baris pertama' dan 'Baris kedua' Anda harus menggunakan kode html
<br />
::yang akan menampilkan:
Juga akan lebih mudah dibaca jika Anda mengganti seluruh skrip dengan:
sumber
First line Second line
- spasi putih apa pun termasuk baris baru akan dikompres ke satu karakter spasi dalam output yang diberikan. Juga,</br>
apa pun selain HTML yang valid.w3school menawarkan cara ini:
dengan menggunakan fungsi ini Anda dapat melakukannya..saya mencoba cara lain yang mengatakan di atas tetapi mereka tidak akan membantu saya ..
sumber
nl2br()
fungsi mengubah karakter baris baru ke<br />
tag HTML. Ini mungkin berguna untuk membuat baris baru pada halaman browser, tetapi bukan baris baru dalam file teks, atau JavaScript, atau mencetak ke layar atau konsol.Untuk beberapa alasan, setiap posting yang menanyakan tentang pelarian baris baru di PHP gagal menyebutkan kasus bahwa memasukkan baris baru ke dalam string yang dikutip tunggal akan melakukan apa yang Anda pikirkan:
ex 1.
Contoh 1 jelas tidak mencetak hasil yang diinginkan, namun, meskipun benar Anda tidak dapat keluar dari baris baru dalam tanda kutip tunggal, Anda dapat memilikinya:
ex 2.
Contoh 2 memiliki perilaku yang persis diinginkan. Sayangnya baris baru yang dimasukkan bergantung pada sistem operasi. Ini biasanya bukan masalah, karena browser / server web akan menafsirkan baris baru dengan benar apakah itu \ r, \ r \ n, atau \ n.
Jelas solusi ini tidak ideal jika Anda berencana untuk mendistribusikan file melalui cara lain kemudian browser web dan ke beberapa sistem operasi. Dalam hal ini Anda harus melihat salah satu jawaban lainnya.
Catatan: menggunakan editor teks kaya fitur, Anda harus dapat menyisipkan baris baru sebagai karakter biner yang mewakili baris baru pada sistem operasi yang berbeda dari yang mengedit file. Jika semuanya gagal, cukup gunakan hex editor untuk memasukkan karakter ascii biner.
sumber
Gunakan PHP nl2br untuk mendapatkan baris baru dalam string teks ..
sumber
nl2br
Fungsi mengkonversi karakter baris baru ke<br />
tag HTML. Jika string tidak mengandung karakter baris baru, fungsi ini tidak akan melakukan apa pun! Selain itu pertanyaannya bukan tentang melanggar garis dalam paragraf dalam HTML. Ini tentang karakter baris baru !Saya juga telah mencoba kombinasi ini baik dalam harga tunggal maupun ganda. Tapi tidak ada yang berhasil. Alih-alih menggunakan
\n
lebih baik digunakan<br/>
dalam tanda kutip ganda. Seperti ini..sumber
Gunakan chr (13) untuk carriage return dan chr (10) untuk jalur baru
sumber
Untuk pernyataan gema, saya selalu menggunakan
<br>
dalam tanda kutip ganda.sumber
Tidak ada yang berhasil untuk saya.
PHP_EOL
. "\r\n";
Bekerja untuk saya:
sumber
sumber