با سلام
شاید برای شما هم پیش بیاد که به هر نحوی نیاز باشه با استفاده از GD یک متن پارسی رو بنویسین ولی به مشکل بر بخورین برای رفع این مشکل
شخصی بنام میلاد راستیان یک تابع برای تبدیل نوشتن و روی گیت هاب قرار دادن
چون پروژه مربوط به سال ۲۰۰۷ بود تو نسخه های جدید php با مشکل همراه بود به همین خاطر تغییرات لازم درش ایجاد شد تا با تمامی نسخه های php سازگاری داشته باشه
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ ۴۶ ۴۷ ۴۸ ۴۹ ۵۰ ۵۱ ۵۲ ۵۳ ۵۴ ۵۵ ۵۶ ۵۷ ۵۸ ۵۹ ۶۰ ۶۱ ۶۲ ۶۳ ۶۴ ۶۵ ۶۶ ۶۷ ۶۸ ۶۹ ۷۰ ۷۱ ۷۲ ۷۳ ۷۴ ۷۵ ۷۶ ۷۷ ۷۸ ۷۹ ۸۰ ۸۱ ۸۲ ۸۳ ۸۴ ۸۵ ۸۶ ۸۷ ۸۸ ۸۹ ۹۰ ۹۱ ۹۲ ۹۳ ۹۴ ۹۵ ۹۶ ۹۷ ۹۸ ۹۹ ۱۰۰ ۱۰۱ ۱۰۲ ۱۰۳ ۱۰۴ ۱۰۵ ۱۰۶ ۱۰۷ ۱۰۸ ۱۰۹ ۱۱۰ ۱۱۱ ۱۱۲ ۱۱۳ ۱۱۴ ۱۱۵ ۱۱۶ ۱۱۷ ۱۱۸ ۱۱۹ ۱۲۰ ۱۲۱ ۱۲۲ ۱۲۳ ۱۲۴ ۱۲۵ ۱۲۶ ۱۲۷ ۱۲۸ ۱۲۹ ۱۳۰ ۱۳۱ ۱۳۲ ۱۳۳ ۱۳۴ ۱۳۵ ۱۳۶ ۱۳۷ ۱۳۸ ۱۳۹ ۱۴۰ ۱۴۱ ۱۴۲ ۱۴۳ ۱۴۴ ۱۴۵ ۱۴۶ ۱۴۷ ۱۴۸ ۱۴۹ ۱۵۰ ۱۵۱ ۱۵۲ ۱۵۳ ۱۵۴ ۱۵۵ ۱۵۶ ۱۵۷ ۱۵۸ ۱۵۹ ۱۶۰ ۱۶۱ ۱۶۲ ۱۶۳ ۱۶۴ ۱۶۵ ۱۶۶ ۱۶۷ ۱۶۸ ۱۶۹ ۱۷۰ ۱۷۱ ۱۷۲ ۱۷۳ ۱۷۴ ۱۷۵ ۱۷۶ ۱۷۷ ۱۷۸ ۱۷۹ ۱۸۰ ۱۸۱ |
<?php function utf8_strlen($str) { return preg_match_all('/[\x00-\x7F\xC0-\xFD]/', $str, $dummy); } $p_chars = array( 'آ' => array('ﺂ','ﺂ','آ'), 'ا' => array('ﺎ','ﺎ','ا'), 'ب' => array('ﺐ','ﺒ','ﺑ'), 'پ' => array('ﭗ','ﭙ','ﭘ'), 'ت' => array('ﺖ','ﺘ','ﺗ'), 'ث' => array('ﺚ','ﺜ','ﺛ'), 'ج' => array('ﺞ','ﺠ','ﺟ'), 'چ' => array('ﭻ','ﭽ','ﭼ'), 'ح' => array('ﺢ','ﺤ','ﺣ'), 'خ' => array('ﺦ','ﺨ','ﺧ'), 'د' => array('ﺪ','ﺪ','ﺩ'), 'ذ' => array('ﺬ','ﺬ','ﺫ'), 'ر' => array('ﺮ','ﺮ','ﺭ'), 'ز' => array('ﺰ','ﺰ','ﺯ'), 'ژ' => array('ﮋ','ﮋ','ﮊ'), 'س' => array('ﺲ','ﺴ','ﺳ'), 'ش' => array('ﺶ','ﺸ','ﺷ'), 'ص' => array('ﺺ','ﺼ','ﺻ'), 'ض' => array('ﺾ','ﻀ','ﺿ'), 'ط' => array('ﻂ','ﻄ','ﻃ'), 'ظ' => array('ﻆ','ﻈ','ﻇ'), 'ع' => array('ﻊ','ﻌ','ﻋ'), 'غ' => array('ﻎ','ﻐ','ﻏ'), 'ف' => array('ﻒ','ﻔ','ﻓ'), 'ق' => array('ﻖ','ﻘ','ﻗ'), 'ک' => array('ﻚ','ﻜ','ﻛ'), 'گ' => array('ﮓ','ﮕ','ﮔ'), 'ل' => array('ﻞ','ﻠ','ﻟ'), 'م' => array('ﻢ','ﻤ','ﻣ'), 'ن' => array('ﻦ','ﻨ','ﻧ'), 'و' => array('ﻮ','ﻮ','ﻭ'), 'ی' => array('ﯽ','ﯿ','ﯾ'), 'ک' => array('ﻚ','ﻜ','ﻛ'), 'ی' => array('ﻲ','ﻴ','ﻳ'), 'أ' => array('ﺄ','ﺄ','ﺃ'), 'ؤ' => array('ﺆ','ﺆ','ﺅ'), 'إ' => array('ﺈ','ﺈ','ﺇ'), 'ئ' => array('ﺊ','ﺌ','ﺋ'), 'ه' => array('ﺔ','ﺘ','ﺗ')); $nastaligh = array('ه' => array('ﮫ','ﮭ','ﮬ')); $normal = array('ه' => array('ﻪ','ﻬ','ﻫ')); $mp_chars = array('آ','ا','د','ذ','ر','ز','ژ','و','أ','إ','ؤ'); $ignorelist = array('','ٌ','ٍ','ً','ُ','ِ','َ','ّ','ٓ',' ٰ','ٔ','ﹶ','ﹺ','ﹸ','ﹼ','ﹾ','ﹴ','ﹰ','ﱞ','ﱟ','ﱠ','ﱡ','ﱢ','ﱣ',); function fagd($str, $z = "", $method = 'normal') { global $p_chars, $mp_chars, $ignorelist, $nastaligh, $normal; if ($method == 'nastaligh') $p_chars = array_merge($p_chars, $nastaligh); else $p_chars = array_merge($p_chars, $normal); $str_len = utf8_strlen($str); preg_match_all("/./u", $str, $ar); $output = ''; for ($i = ۰; $i < $str_len; $i++) { $str1 = $ar[۰][$i]; $str_back = ''; if (!empty($ar[۰][$i + ۱]) and in_array($ar[۰][$i + ۱], $ignorelist)) { $str_next = $ar[۰][$i + ۲]; if ($i == ۲) $str_back = $ar[۰][$i - ۲]; if ($i != ۲) $str_back = $ar[۰][$i - ۱]; } elseif (!empty($ar[۰][$i - ۱]) and !in_array($ar[۰][$i - ۱], $ignorelist)) { $str_next = !empty($ar[۰][$i + ۱]) ? $ar[۰][$i + ۱] : ''; if ($i != ۰) $str_back = $ar[۰][$i - ۱]; } else { if (isset($ar[۰][$i + ۱]) && !empty($ar[۰][$i + ۱])) $str_next = $ar[۰][$i + ۱]; else $str_next = $ar[۰][$i - ۱]; if ($i != ۰) $str_back = $ar[۰][$i - ۲]; } if (!in_array($str1, $ignorelist)) { if (array_key_exists($str1, $p_chars)) { if (!$str_back or $str_back == " " or !array_key_exists($str_back, $p_chars)) { if (!array_key_exists($str_back, $p_chars) and !array_key_exists($str_next, $p_chars)) $output = $str1 . $output; else $output = $p_chars[$str1][۲] . $output; continue; } elseif (array_key_exists($str_next, $p_chars) and array_key_exists($str_back, $p_chars)) { if (in_array($str_back, $mp_chars) and array_key_exists($str_next, $p_chars)) $output = $p_chars[$str1][۲] . $output; else $output = $p_chars[$str1][۱] . $output; continue; } elseif (array_key_exists($str_back, $p_chars) and !array_key_exists($str_next,$p_chars)) { if (in_array($str_back, $mp_chars)) $output = $str1 . $output; else $output = $p_chars[$str1][۰] . $output; continue; } } elseif ($z == "fa") { $number = array( "٠","١","٢","٣","۴","۵","۶","٧","٨","٩","۴","۵","۶", "۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"); switch ($str1) { case ")": $str1 = "("; break; case "(": $str1 = ")"; break; case "}": $str1 = "{"; break; case "{": $str1 = "}"; break; case "]": $str1 = "["; break; case "[": $str1 = "]"; break; case ">": $str1 = "<"; break; case "<": $str1 = ">"; break; } if (in_array($str1, $number)) { $num .= $str1; $str1 = ""; } if (!in_array($str_next, $number)) { $str1 .= $num; $num = ""; } $output = $str1 . $output; } else { if (($str1 == "،") or ($str1 == "؟") or ($str1 == "ء") or (array_key_exists($str_next,$p_chars) and array_key_exists($str_back, $p_chars)) or ($str1 == " " and array_key_exists($str_back, $p_chars)) or ($str1 == " " and array_key_exists($str_next,$p_chars))) { if ($e_output) { $output = $e_output . $output; $e_output = ""; } $output = $str1 . $output; } else { $e_output .= $str1; if (array_key_exists($str_next, $p_chars) or $str_next == "") { $output = $e_output . $output; $e_output = ""; } } } } else $output = $str1 . $output; $str_next = null; $str_back = null; } return $output; } ?> |
موفق و پیروز باشید
سلام مبین جان
خیلی عالی بود کاش نسخه تعمیم یافته اش رو رو گیت هاب خودتم میذاشتی، اینجوری زیبا تر بودش.
در اولین فرصت حتما