Operasi string Arabic dengan PHP
Sedikit latihan untuk implementasi topik skripsi nanti. Saya perlu prosedur untuk memecah sebuah string menjadi array dari karakter.
Pengolahan string untuk teks non-ASCII seperti tulisan Arab tidak dapat dilakukan seperti biasa di PHP. String demikian (karakter Unicode) termasuk multybite string, sehingga perlu penanganan khusus. Bila menggunakan fungsi string biasa di PHP, maka hasilnya akan muncul karakter-karakter aneh.
Untungnya di PHP ada pustaka fungsi untuk string multibyte. Misalnya fungsi mb_strlen
sebagai pengganti fungsi strlen
. Langsung saja, berikut potongan kode untuk memecah string Arabic menjadi array dari karakter-karakternya. Harap diketahui bahwa tanda harakat juga dihitung satu karakter. Ini terkait posting saya sebelumnya.
<?php $ar_string = "صِرَاطَ الَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَلَا الضَّالِّينَ"; $ar_array = array(); $len = mb_strlen($ar_string, 'UTF-8'); for($i = 0; $i < $len; $i++){ $ar_array[] = mb_substr($ar_string, $i, 1, 'UTF-8'); } print_r($ar_array); ?>
Dan bila dijalankan, maka akan sesuai harapan, yaitu string dipecah menjadi array dari karakter-karakternya.
Array ( [0] => ص [1] => ِ [2] => ر [3] => َ [4] => ا [5] => ط [6] => َ [7] => [8] => ا [9] => ل [10] => ّ [11] => َ [12] => ذ [13] => ِ [14] => ي [15] => ن [16] => َ [17] => [18] => أ [19] => َ [20] => ن [21] => ْ [22] => ع [23] => َ [24] => م [25] => ْ [26] => ت [27] => َ [28] => [29] => ع [30] => َ [31] => ل [32] => َ [33] => ي [34] => ْ [35] => ه [36] => ِ [37] => م [38] => ْ [39] => [40] => غ [41] => َ [42] => ي [43] => ْ [44] => ر [45] => ِ [46] => [47] => ا [48] => ل [49] => ْ [50] => م [51] => َ [52] => غ [53] => ْ [54] => ض [55] => ُ [56] => و [57] => ب [58] => ِ [59] => [60] => ع [61] => َ [62] => ل [63] => َ [64] => ي [65] => ْ [66] => ه [67] => ِ [68] => م [69] => ْ [70] => [71] => و [72] => َ [73] => ل [74] => َ [75] => ا [76] => [77] => ا [78] => ل [79] => ض [80] => ّ [81] => َ [82] => ا [83] => ل [84] => ّ [85] => ِ [86] => ي [87] => ن [88] => َ )
Balas