Rumah > Artikel > pembangunan bahagian belakang > Cara Mengesan Fail UTF-8 Berawalan BOM dengan Cekap: Pendekatan Yang Diperhalusi
Untuk tujuan penyahpepijatan, mengenal pasti fail yang bermula dengan tanda pesanan (BOM) UTF-8 bait dalam direktori adalah penting. Walau bagaimanapun, kaedah sedia ada boleh berbelit-belit dan mungkin menghadapi masalah dengan nama fail yang mengandungi pemisah baris. Dalam artikel ini, kami menyelidiki penyelesaian yang lebih diperkemas.
Bermula dengan arahan asal, kami menggunakan find untuk melintasi direktori secara rekursif, menapis fail dan memaipkan nama mereka ke gelung sementara. Dalam gelung, head mengekstrak tiga bait pertama setiap fail dan membandingkannya dengan jujukan BOM yang dijangkakan ($'xefxbbxbf'). Fail yang memenuhi syarat ini kemudian diserlahkan.
Satu potensi kelemahan pendekatan ini ialah kerentanannya terhadap pemisah baris dalam nama fail. Untuk mengelakkan isu ini, kami membentangkan perintah alternatif yang bukan sahaja mencari fail awalan BOM tetapi juga menghapuskannya:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;
Arahan ini menggunakan sed untuk menggantikan urutan BOM dengan rentetan kosong dalam baris pertama setiap fail yang sepadan. Walau bagaimanapun, sila ambil perhatian bahawa tindakan ini akan mengubah suai mana-mana fail binari yang mengandungi aksara ini.
Bagi mereka yang mencari pendekatan tidak merosakkan, kami mengesyorkan arahan berikut:
grep -rl $'\xEF\xBB\xBF' .
Arahan ini menggunakan grep untuk mencari dan menyenaraikan fail yang mengandungi jujukan BOM tanpa mengubah kandungannya.
Akhirnya, pilihan penyelesaian bergantung pada hasil yang diingini dan sifat fail yang sedang diperiksa.
Atas ialah kandungan terperinci Cara Mengesan Fail UTF-8 Berawalan BOM dengan Cekap: Pendekatan Yang Diperhalusi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!