ابحث عن كود دالة لتحويل النص العربي للاتيني من اجل استخدامها لانشاء slug لروابط مقالات، صادفتها من قبل لكن لم اصل إليها الان.
مثلا اريد ان يتم تحويل : كلام عربي إلى kalam arabi
شكرا لكم
هناك إضافة توفر ذلك منها mbstring وIntl لكن يجب تفعيلهم في PHP لكي تتمكن من استخدامهم.
واستخدام دالة transliterate من mbstring كالتالي:
<?php
mb_internal_encoding('UTF-8');
echo transliterate('كلام عربي', 'ar-latin');
?>
أو دالة transliterate من Intl كالتالي:
$text = 'كلام عربي'; $transliterated_text = transliterate($text, 'Any-Latin; Latin-ASCII; [^a-zA-Z]* remove'); echo $transliterated_text; // Output: kalam arabi
أو استخدام مكتبة خارجية مثل ar-php
او الإعتماد على دالة برمجية مُخصصة تؤدي تلك الوظيفة كالتالي:
function arabic_to_latin($text) {
$mapping = array(
'أ' => 'a', 'إ' => 'i', 'ئ' => 'e', 'ء' => '', 'ؤ' => 'o', 'و' => 'u',
'ه' => 'h', 'ن' => 'n', 'م' => 'm', 'ل' => 'l', 'ك' => 'k', 'ق' => 'q',
'ف' => 'f', 'غ' => 'g', 'ع' => 'a', 'ظ' => 'z', 'ط' => 't', 'ض' => 'd',
'ص' => 's', 'ش' => 'sh', 'س' => 's', 'ز' => 'z', 'ر' => 'r', 'ذ' => 'dh',
'د' => 'd', 'خ' => 'kh', 'ح' => 'h', 'ج' => 'j', 'ث' => 'th', 'ت' => 't',
'ب' => 'b', 'ا' => 'a', 'ى' => 'a', 'ي' => 'y',
);
$text = strtr($text, $mapping);
return $text;
}
$text = 'كلام عربي';
$latin_text = arabic_to_latin($text);
echo $latin_text;