نمایش نتایج 1 تا 35 از 35

نام تاپیک: نوشتن متن فارسی روی عکس

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8

    نقل قول: نوشتن متن فارسی روی عکس

    ok خودم درستش کردم ... کدشو کاملتر کردم که تمام حروف رو شامل بشه ...
    الان جملات انگلیسی هم درست چاپ میشن ...

    function farsi_correct($string)
    {
    // Reverse the string
    $len = mb_strlen($string, 'utf-8');
    $result = '';
    for ($i = ($len - 1); $i >= 0; $i--) {
    $result .= mb_substr($string, $i, 1, 'utf-8');
    }
    // These chars work as space when a character comes after them, so the next character will not connect to them
    $spaces_after = array('', ' ', 'ا', 'آ', 'أ', 'إ', 'د', 'ذ', 'ر', 'ز', 'ژ', 'و', 'ؤ');
    // These chars work as space when a character comes before them, so the previous character will not connect to them
    $spaces_before = array('', ' ');
    // Persian chars with their different styles at different positions:
    // Alone, After a non-space char, Before a non-space char, between two non-space chars
    $chars = array();
    $chars[] = array('آ', 'ﺂ', 'آ', 'ﺂ');
    $chars[] = array('أ', 'ﺄ', 'ﺃ', 'ﺄ');
    $chars[] = array('إ', 'ﺈ', 'ﺇ', 'ﺈ');
    $chars[] = array('ا', 'ﺎ', 'ا', 'ﺎ');
    $chars[] = array('ب', 'ﺐ', 'ﺑ', 'ﺒ');
    $chars[] = array('پ', 'ﭗ', 'ﭘ', 'ﭙ');
    $chars[] = array('ت', 'ﺖ', 'ﺗ', 'ﺘ');
    $chars[] = array('ث', 'ﺚ', 'ﺛ', 'ﺜ');
    $chars[] = array('ج', 'ﺞ', 'ﺟ', 'ﺠ');
    $chars[] = array('چ', 'ﭻ', 'ﭼ', 'ﭽ');
    $chars[] = array('ح', 'ﺢ', 'ﺣ', 'ﺤ');
    $chars[] = array('خ', 'ﺦ', 'ﺧ', 'ﺨ');
    $chars[] = array('د', 'ﺪ', 'ﺩ', 'ﺪ');
    $chars[] = array('ذ', 'ﺬ', 'ﺫ', 'ﺬ');
    $chars[] = array('ر', 'ﺮ', 'ﺭ', 'ﺮ');
    $chars[] = array('ز', 'ﺰ', 'ﺯ', 'ﺰ');
    $chars[] = array('ژ', 'ﮋ', 'ﮊ', 'ﮋ');
    $chars[] = array('س', 'ﺲ', 'ﺳ', 'ﺴ');
    $chars[] = array('ش', 'ﺶ', 'ﺷ', 'ﺸ');
    $chars[] = array('ص', 'ﺺ', 'ﺻ', 'ﺼ');
    $chars[] = array('ض', 'ﺾ', 'ﺿ', 'ﻀ');
    $chars[] = array('ط', 'ﻂ', 'ﻃ', 'ﻄ');
    $chars[] = array('ظ', 'ﻆ', 'ﻇ', 'ﻈ');
    $chars[] = array('ع', 'ﻊ', 'ﻋ', 'ﻌ');
    $chars[] = array('غ', 'ﻎ', 'ﻏ', 'ﻐ');
    $chars[] = array('ف', 'ﻒ', 'ﻓ', 'ﻔ');
    $chars[] = array('ق', 'ﻖ', 'ﻗ', 'ﻘ');
    $chars[] = array('ک', 'ﻚ', 'ﻛ', 'ﻜ');
    $chars[] = array('ك', 'ﻚ', 'ﻛ', 'ﻜ');
    $chars[] = array('گ', 'ﮓ', 'ﮔ', 'ﮕ');
    $chars[] = array('ل', 'ﻞ', 'ﻟ', 'ﻠ');
    $chars[] = array('م', 'ﻢ', 'ﻣ', 'ﻤ');
    $chars[] = array('ن', 'ﻦ', 'ﻧ', 'ﻨ');
    $chars[] = array('و', 'ﻮ', 'ﻭ', 'ﻮ');
    $chars[] = array('ؤ', 'ﺆ', 'ﺅ', 'ﺆ');
    $chars[] = array('ی', 'ﯽ', 'ﯾ', 'ﯿ');
    $chars[] = array('ي', 'ﻲ', 'ﻳ', 'ﻴ');
    $chars[] = array('ئ', 'ﺊ', 'ﺋ', 'ﺌ');
    $chars[] = array('ه', 'ﻪ', 'ﮬ', 'ﮭ');
    $chars[] = array('ۀ', 'ﮥ', 'ﮬ', 'ﮭ');
    $chars[] = array('ة', 'ﺔ', 'ﺗ', 'ﺘ');
    $chars[] = array(' ', ' ', ' ', ' ');
    $chars[] = array('0', '0', '0', '0');
    $chars[] = array('1', '1', '1', '1');
    $chars[] = array('2', '2', '2', '2');
    $chars[] = array('3', '3', '3', '3');
    $chars[] = array('4', '4', '4', '4');
    $chars[] = array('5', '5', '5', '5');
    $chars[] = array('6', '6', '6', '6');
    $chars[] = array('7', '7', '7', '7');
    $chars[] = array('8', '8', '8', '8');
    $chars[] = array('9', '9', '9', '9');

    $string = $result;
    $len = mb_strlen($string, 'utf-8');
    $result = '';
    $buffer = array();


    for ($i = 0; $i < $len; $i++) {
    $previous_char = $i > 0 ? mb_substr($string, $i - 1, 1, 'utf-8') : '';
    $current_char = mb_substr($string, $i, 1, 'utf-8');
    $next_char = $i < ($len - 1) ? mb_substr($string, $i + 1, 1, 'utf-8') : '';

    $in_array = false;
    foreach ($chars as $char) {
    if (in_array($current_char, $char)) {
    $in_array = true;
    if (!in_array($next_char, $spaces_after) && !in_array($previous_char, $spaces_before)) {
    if ($current_char == ' ') {
    if (!in_farsi_array($chars, $next_char) && !in_farsi_array($chars, $previous_char))
    $in_array = false;
    else
    $result .= $char[3];
    } else
    $result .= $char[3];
    } elseif (!in_array($previous_char, $spaces_before)) {
    $result .= $char[2];
    }
    elseif (!in_array($next_char, $spaces_after)) {
    $result .= $char[1];
    }
    else {
    $result .= $char[0];
    }
    continue;
    }
    }
    if (!$in_array) {
    $buffer[] = $current_char;
    $in_array = false;
    } else {
    $result .= implode('', array_reverse($buffer));
    $buffer = array();
    }
    }
    if (!empty($buffer))
    $result .= implode('', array_reverse($buffer));

    return $result;
    }

    function in_farsi_array(&$farsi, $text)
    {
    foreach ($farsi as $t) {
    if (in_array($text, $t))
    return true;
    }
    return false;
    }
    آخرین ویرایش به وسیله exlord : دوشنبه 15 خرداد 1391 در 11:39 صبح دلیل: کاملتر کردن کد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •