Bagaimana untuk Mengeluarkan Watak Kawalan dengan Berkesan daripada Rentetan PHP?

Barbara Streisand
Lepaskan: 2024-10-30 12:33:04
asal
752 orang telah melayarinya

How to Effectively Remove Control Characters from PHP Strings?

Melucutkan Aksara Kawalan daripada Rentetan PHP

S: Mengubah Ubah Ungkapan Biasa untuk Penyingkiran Aksara Kawalan

Seorang pembangun PHP sebelum ini menggunakan ungkapan berikut untuk membersihkan aksara kawalan seperti STX daripada rentetan:

preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)
Salin selepas log masuk

Walau bagaimanapun, hasilnya terlalu menyekat, menimbulkan persoalan: bagaimanakah aksara kawalan boleh dialih keluar secara terpilih?

J: Menggunakan Kelas Watak Khusus untuk Pengenalpastian Watak Kawalan

Untuk menyasarkan watak kawalan dengan tepat, kelas watak yang lebih khusus boleh digunakan:

preg_replace('/[\x00-\x1F\x7F]/', '', $input);
Salin selepas log masuk

Ungkapan ini sepadan dengan aksara dengan kod ASCII dalam julat x00-x1F dan x7F, merangkumi 32 aksara pertama dan x7F, yang termasuk aksara seperti carriage returns.

Memelihara Aksara Penting seperti Line Break

Jika aksara tertentu, seperti suapan baris atau pengembalian pengangkutan, perlu dikekalkan, urutan pelariannya boleh dikecualikan:

preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);
Salin selepas log masuk

Dalam ungkapan yang diubah suai ini, x0A (suapan baris) dan x0D (carriage return) dikecualikan daripada kelas aksara.

Sintaks dan Penamatan Moden

Adalah penting untuk ambil perhatian bahawa penamatan ereg_replace dalam PHP 5.3.0 dan yang penyingkiran seterusnya dalam PHP 7.0.0 mewajibkan penggunaan preg_replace berbanding ereg_replace.

Akhir sekali, Kelas Aksara untuk Watak Kawalan

Untuk alternatif yang ringkas dan mudah alih, kelas aksara [:cntrl:] boleh bekerja:

preg_replace('/[[:cntrl:]]/', '', $input);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Watak Kawalan dengan Berkesan daripada Rentetan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!