Удалить арабский диакритический

Я хочу, чтобы php конвертировал это …

Text : الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ converted to : الحمد لله رب العالمين 

Я не уверен, с чего начать и как это сделать. Абсолютно не знаю. Я провел некоторое исследование, нашел эту ссылку http://www.suhailkaleem.com/2009/08/26/remove-diacritics-from-arabic-text-quran/, но не использует php. Я хотел бы использовать php и скрывать вышеуказанный текст для преобразованного текста. Я хочу удалить любую диакритику из пользовательского ввода арабского текста

Гласные диакритики на арабском языке объединяют символы , что означает, что простого поиска для них должно быть достаточно. Нет необходимости иметь правило замены для каждого возможного согласного со всеми возможными гласными, что немного утомительно.

Вот рабочий пример, который выводит то, что вам нужно:

 header('Content-Type: text/html; charset=utf-8', true); $string = 'الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ'; $remove = array('ِ', 'ُ', 'ٓ', 'ٰ', 'ْ', 'ٌ', 'ٍ', 'ً', 'ّ', 'َ'); $string = str_replace($remove, '', $string); echo $string; // outputs الحمد لله رب العالمين 

Важно то, что это массив $remove . Это выглядит странно, потому что между котировками существует комбинирующий символ, поэтому он модифицирует одну из этих одинарных кавычек. Это может потребовать сохранения в той же кодировке символов, что и ваш текст.

Я не говорю по-арабски, но я думаю, что вы можете сделать некоторый набор символов в алфавите:

 function remap($string) { $remap = [ 'ą' => 'a', 'č' => 'c', /* ... Arabic alphabet remap */ ]; return str_replace(array_keys($remap), $remap, $string); } echo remap('ąčasdadfg'); // => acasdadfg