Ketika saya menggunakan PHP untuk menulis fail baru-baru ini, saya menghadapi masalah pelik, iaitu kandungan yang ditulis bercelaru. Selepas beberapa mencari dan mencuba pelarasan, akhirnya saya menemui penyelesaian, dan kini saya akan berkongsi dengan anda.
Mula-mula anda perlu mengesahkan kaedah pengekodan Kaedah pengekodan lalai PHP ialah ISO-8859-1, dan kebanyakan kaedah pengekodan Cina UTF-8 . Oleh itu, anda perlu menambah kod berikut pada permulaan fail:
header('Content-type:text/html;charset=utf-8');
Baris kod ini akan memberitahu penyemak imbas untuk menggunakan pengekodan UTF-8 untuk menghuraikan dokumen.
Jika fail yang ditulis bukan fail teks biasa, tetapi fail HTML atau XML, anda perlu menetapkan kaedah pengekodan fail, anda boleh gunakan kod berikut:
header('Content-type:text/html;charset=utf-8'); $file = "example.html"; file_put_contents($file, $data); if ($file == "example.html") { exec("iconv -f utf-8 -t utf-8//IGNORE \"$file\" > \"$file.utf8\""); unlink($file); rename("$file.utf8", $file); }
Kod ini akan menukar pengekodan fail kepada UTF-8 dan mengalih keluar semua aksara bukan UTF-8.
Jika dua kaedah di atas tidak dapat menyelesaikan masalah, anda boleh cuba mengubah suai fail PHP.ini dan tetapkan kaedah pengekodan lalai kepada UTF-8 . Operasi khusus adalah seperti berikut:
Cari "default_charset" dalam fail PHP.ini dan ubah suai nilainya kepada "UTF-8", seperti ditunjukkan di bawah:
default_charset = "UTF-8"
Selepas pengubahsuaian , mulakan semula pelayan Apache, ia akan berkuat kuasa.
Ringkasnya, masalah aksara bercelaru semasa menulis fail terutamanya disebabkan oleh kaedah pengekodan yang berbeza Ia boleh diselesaikan dengan mengesahkan kaedah pengekodan, menetapkan pengekodan fail atau mengubah suai fail PHP.ini. Saya harap artikel ini dapat membantu semua orang menyelesaikan masalah yang sama.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan aksara yang kacau apabila menulis fail php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!