Membaca fail teks ialah operasi yang sangat biasa semasa menulis kod dalam PHP. Walau bagaimanapun, kadangkala kami mendapati bahawa kandungan teks yang kami baca bercelaru, yang membawa masalah besar kepada kerja pembangunan kami. Artikel ini akan memperkenalkan sebab mengapa PHP membaca teks bercelaru dan cara menyelesaikannya.
1. Sebab aksara bercelaru
1 Format pengekodan fail tidak konsisten
Apabila membuat fail teks di bawah sistem pengendalian Windows, pengekodan GBK digunakan secara lalai. Apabila membuat fail teks di bawah sistem pengendalian Linux, pengekodan UTF-8 digunakan secara lalai. Apabila kami mencipta fail teks dalam format pengekodan GBK di bawah sistem pengendalian Windows dan kemudian membacanya di bawah sistem pengendalian Linux, aksara bercelaru cenderung berlaku.
2. Format pengekodan yang salah digunakan semasa membaca fail
Apabila kami menggunakan fungsi file_get_contents() PHP atau fungsi fopen() untuk membaca fail teks, kami perlu menggunakan pengekodan yang betul format . Jika format pengekodan yang kami gunakan tidak sepadan dengan format pengekodan fail teks, aksara bercelaru akan muncul.
3. Fail teks itu sendiri bercelaru
Jika fail teks itu sendiri bercelaru, aksara bercelaru juga akan muncul semasa membaca fail. Dalam kes ini, kita perlu menyemak sumber fail teks, mencari punca dan menyelesaikannya.
2. Kaedah untuk menyelesaikan masalah kod bercelaru
1 Nyatakan format pengekodan
Apabila kita membaca fail teks, kita boleh menyelesaikan masalah kod bercelaru dengan menyatakan format pengekodan. Jika kita mengetahui format pengekodan fail teks, kita boleh menghantarnya sebagai parameter kedua kepada fungsi file_get_contents() atau fungsi fopen(). Sebagai contoh, jika kita tahu bahawa format pengekodan fail teks ialah UTF-8, kita boleh menggunakannya seperti ini:
$file = file_get_contents('file.txt', 'UTF-8');
atau :
$file = fopen('file.txt', 'r', false, 'UTF-8');
2. ) berfungsi untuk menukar format pengekodan
Jika kami tidak dapat menentukan format pengekodan fail teks, kami boleh menggunakan fungsi iconv() untuk menukar fail teks kepada pengekodan UTF-8 dan kemudian membacanya. Contohnya:
$file = file_get_contents('file.txt');
$file = iconv('GBK', 'UTF-8', $file);
Atau :
$file = fopen('file.txt', 'r');
$file = stream_get_contents($file);
$file = iconv('GBK', 'UTF- 8 ', $file);
3 Tetapkan format pengekodan lalai PHP
Jika aplikasi kami menggunakan sejumlah besar operasi untuk membaca fail teks, kami boleh mempertimbangkan untuk menetapkan format pengekodan lalai dalam. fail konfigurasi PHP Format pengekodan ialah UTF-8. Dalam fail php.ini, cari pilihan default_charset dan tetapkan kepada UTF-8:
default_charset = "UTF-8"
4. Gunakan Notepad++ untuk menukar format pengekodan fail
Di bawah sistem pengendalian Windows, kami boleh menggunakan Notepad++ untuk menukar format pengekodan fail teks. Mula-mula, buka fail teks yang perlu ditukar dalam Notepad++, kemudian pilih "Tukar kepada Pengekodan UTF-8" dalam menu "Pengekodan", dan simpan fail tersebut.
Nota: Kaedah di atas adalah untuk menyelesaikan masalah apabila fail teks itu sendiri tidak mempunyai aksara yang bercelaru.
3. Kesimpulan
Masalah teks bercelaru yang dibaca oleh PHP telah menyusahkan ramai pembangun. Terdapat banyak sebab untuk watak bercelaru, dan terdapat banyak cara untuk menyelesaikan masalah watak bercelaru Kita perlu memilih dan menggunakannya mengikut situasi sebenar. Saya harap artikel ini dapat membantu pembangun yang menghadapi masalah membaca teks bercelaru dalam PHP dan membolehkan mereka mengelakkan masalah ini semasa proses pembangunan.
Atas ialah kandungan terperinci php membaca teks bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!