ابحث عن كود دالة لتحويل النص العربي للاتيني من اجل استخدامها لانشاء 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;
التعليقات