Untuk memeriksa perbedaan antara dua string dalam PHP, terutama ketika keduanya tampak sama tetapi ternyata berbeda, Anda bisa menggunakan beberapa pendekatan berikut:
- Periksa Panjang String: Terkadang, perbedaan mungkin berasal dari karakter tak terlihat seperti spasi atau karakter Unicode yang berbeda. Memeriksa panjang string dapat membantu mengidentifikasi apakah ada karakter tambahan atau tersembunyi.
- Tampilkan Kode Unicode: Menampilkan kode Unicode dari setiap karakter dalam string dapat membantu Anda menemukan perbedaan halus yang mungkin tidak terlihat dengan mata telanjang.
- Gunakan
strcmp
ataumb_strcmp
: Fungsi ini bisa digunakan untuk membandingkan string secara langsung dan memberi tahu apakah string tersebut benar-benar sama.
Berikut adalah contoh kode untuk melakukan tiga langkah tersebut:
$q = $output;
$q_without_harakat = "فعل";
// 1. Periksa panjang string
echo "Length of \$q: " . strlen($q) . "<br>";
echo "Length of \$q_without_harakat: " . strlen($q_without_harakat) . "<br>";
// 2. Tampilkan kode Unicode
function unicodeString($str) {
$unicode = [];
for ($i = 0; $i < mb_strlen($str); $i++) {
$unicode[] = "U+" . strtoupper(dechex(mb_ord(mb_substr($str, $i, 1))));
}
return implode(' ', $unicode);
}
echo "Unicode of \$q: " . unicodeString($q) . "<br>";
echo "Unicode of \$q_without_harakat: " . unicodeString($q_without_harakat) . "<br>";
// 3. Gunakan strcmp atau mb_strcmp
if (strcmp($q, $q_without_harakat) === 0) {
echo "\$q dan \$q_without_harakat adalah sama.<br>";
} else {
echo "\$q dan \$q_without_harakat berbeda.<br>";
}
Dalam contoh ini:
- strlen digunakan untuk memeriksa panjang string. Jika panjangnya berbeda, berarti ada karakter tambahan.
- unicodeString adalah fungsi untuk menampilkan kode Unicode dari setiap karakter dalam string. Ini akan membantu mengidentifikasi perbedaan karakter yang tidak terlihat.
- strcmp digunakan untuk membandingkan string secara langsung.
Jika string tersebut benar-benar berbeda karena adanya karakter tak terlihat seperti harakat (diakritik dalam bahasa Arab), Anda akan melihat perbedaannya melalui output Unicode atau perbedaan panjang string.
Leave a Reply