Dalam beberapa keadaan, anda mungkin menghadapi keperluan untuk mengalih keluar aksara yang tidak boleh dicetak daripada rentetan, seperti dalam julat 0-31 dan 127 semasa manipulasi rentetan atau data pembersihan.
Untuk mengalih keluar aksara tidak boleh cetak dalam julat ASCII 7-bit (0-31, 127-255), gunakan ungkapan biasa berikut menggunakan preg_replace:
$string = preg_replace('/[x00-x1Fx7F-xFF]/', '', $string);
Ini akan mengalih keluar semua aksara dalam julat yang ditentukan dengan berkesan.
Untuk mengendalikan 8-bit ASCII lanjutan, menghapuskan aksara hanya dalam julat 0-31 dan 127, gunakan ungkapan biasa yang dilaraskan:
$string = preg_replace('/[x00-x1Fx7F]/', '', $string);
Untuk rentetan yang dikodkan UTF-8, memasukkan pengubah suai /u dalam ungkapan biasa adalah disyorkan:
$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);
Ini memastikan penyingkiran tepat aksara kawalan tertentu seperti NO-BREAK SPACE (U 00A0) dengan menambahkan xA0 pada kelas aksara.
Semasa preg_replace adalah cekap, pertimbangkan str_replace sebagai alternatif, terutamanya untuk operasi berulang.
// Cipta tatasusunan aksara tidak boleh dicetak
$badchars = array(
chr(0), chr(1), chr(2), ..., chr(31), chr(127)
);
// Gantikan aksara yang tidak diingini menggunakan str_replace
$str2 = str_replace($badchars, '', $str);
Adalah penting untuk menanda aras prestasi kedua-dua pendekatan menggunakan data anda sendiri untuk menentukan penyelesaian optimum bagi kes khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Aksara Tidak Boleh Cetak daripada Rentetan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!