Cara Menghapus Spesial Karakter di PHP dengan preg_replace

Ketika kita membuat sebuah pogram aplikasi terkadang kita membutuhkan fungsi yang bertugas untuk menghilangkan karakter dan simbol khusus sebelum kita mengolah data tersebut.

Hal ini bertujuan untuk meminimalisir hal-hal yang tidak diinginkan seperti SQL Injection ataupun gagalnya proses input ke database karena tersisipnya karakter khusus. Bisa juga untuk validasi form, jadi kita membatasi karakter inputan yang masuk kedalam database.

Sebenarnya ada beberapa cara untuk menghapus spesial karakter di php, misalnya str_replace. Namun Saya pribadi lebih sering menggunakan fungsi preg_replace:

Cara Menghapus Spesial Karakter di PHP dengan preg_replace

Sintaks PHP


mixed preg_replace (mixed pattern, mixed replacement, mixed string [, int limit [, int &$count]] );

Biasanya saya menggunakan fungsi ini untuk menjaga konsistensi data agar seragam, misalnya saya ingin menyimpan daftar nomor HP dan pada praktiknya ada yang memasukan data sebagai berikut:

085123456789
+6285123456789
+62851-2345-6789

Padahal yang saya butuhkan adalah nomor HP dengan format 085123456789. Untuk itu saya harus menghilangkan karakter selain angka tersebut.

Regular Expressions


Untuk memudahkan penjelasan teman-teman bisa melihat snippet kode regex berikut ini:

[abc]     A single character: a, b or c
[^abc]     Any single character but a, b, or c
[a-z]     Any single character in the range a-z
[a-zA-Z]     Any single character in the range a-z or A-Z
^     Start of line
$     End of line
\A     Start of string
\z     End of string
.     Any single character
\s     Any whitespace character
\S     Any non-whitespace character
\d     Any digit
\D     Any non-digit
\w     Any word character (letter, number, underscore)
\W     Any non-word character
\b     Any word boundary character
(...)     Capture everything enclosed
(a|b)     a or b
a?     Zero or one of a
a*     Zero or more of a
a+     One or more of a
a{3}     Exactly 3 of a
a{3,}     3 or more of a
a{3,6}     Between 3 and 6 of a

Menghapus Spesial Karakter Pada String


Menghapus semua karakter yang ada pada string tanpa terkecuali

<?php
$string="contoh kalimat string 43%^%^&%^";
echo $hasil = preg_replace(‘/[^A-Za-z0-9\-]/’, ”, $string);
?>

Menghapus Spesial Karakter kecuali space / spasi

<?php
$string="contoh kalimat string 43%^%^&%^";
echo $hasil = preg_replace(‘/[^A-Za-z0-9\  ]/’, ”, $string);
?>

Jadi jika di lihat dari contoh yang pertama letak perbedaan pada script kedua yaitu pada backslace setelah angka sembilan. Pada contoh yang pertama terdapat tanda – itu berarti tanpa pengecualian. Sedang pada contoh yang kedua pada setelah sembila dan backslace (9\) terdapat jarak atau space, nah artinya adalah penghapusan atau perumahan kecuali spasi.

Demikianlah sedikit pembahasan mengenai bagaimana cara menghapus karakter khusus menggunakan fungsi preg_replace di PHP. Semoga bermanfaat untuk kita semua.

Artikel Terkait

Cara Menghapus Spesial Karakter di PHP dengan preg_replace
4/ 5
Oleh