Rumah >pembangunan bahagian belakang >masalah PHP >Apa yang perlu dilakukan jika php+fread() bercelaru
php+fread() kod bercelaru adalah kerana pengekodan halaman output tidak konsisten dengan pengekodan fail yang dibaca Penyelesaiannya: 1. Buka fail PHP yang sepadan 2. Baca fail melalui fread fungsi; 3. Lulus Kaedah "iconv('gbk', 'utf-8', $data)" hanya menukar kod kandungan yang dibaca.
Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1, komputer DELL G3
Cara membetulkan php+ fread() aksara kacau uruskan?
Dalam PHP, fail dibaca terus melalui fungsi fread Jika kandungan fail menemui aksara Cina, masalahnya akan bercelaru Bagaimana untuk menyelesaikan masalah ini.
Mungkin pengekodan halaman output tidak konsisten dengan pengekodan fail yang dibaca.
Penyelesaian:
Cuba alih kod kandungan selepas membacanya
iconv('gbk', 'utf-8', $data)
Pengenalan berkaitan:
iconv
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
iconv — Tukar rentetan kepada pengekodan aksara yang diperlukan
Penjelasan
iconv(string $in_charset, string $out_charset, string $str): string
Tukar rentetan str daripada in_charset kepada out_charset.
Parameter
in_charset
Input set aksara.
out_charset
Output set aksara.
Jika anda menambah rentetan //TRANSLIT selepas out_charset, fungsi transliterasi akan didayakan. Ini bermakna apabila watak tidak boleh diwakili oleh set aksara sasaran, ia boleh dianggarkan oleh satu atau lebih aksara yang serupa. Jika anda menambah rentetan //IGNORE, aksara yang tidak boleh dinyatakan dalam set aksara sasaran akan dibuang secara senyap. Jika tidak, E_NOTICE disebabkan dan palsu dikembalikan.
amaran
//TRANSLIT 运行细节高度依赖于系统的 iconv() 实现(参见 ICONV_IMPL)。 据悉,某些系统上的实现会直接忽略 //TRANSLIT,所以转换也有可能失败,out_charset 会是不合格的。
str
Rentetan untuk ditukar.
Nilai pulangan
Mengembalikan rentetan yang ditukar atau mengembalikan palsu apabila gagal. Fungsi
fread()
fread() membaca fail yang terbuka.
Fungsi akan berhenti berjalan apabila ia mencapai panjang yang ditentukan atau mencapai penghujung fail (EOF), yang mana dahulu.
Fungsi ini mengembalikan rentetan baca, atau FALSE jika gagal.
Sintaks
string fread ( resource $handle , int $length )
Parameter
mengendalikan penunjuk sistem fail, yang merupakan sumber yang biasanya dicipta oleh fopen().
panjang Diperlukan. Menentukan bilangan maksimum bait untuk dibaca.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika php+fread() bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!