将阿拉伯字符音译为英语 - Wordpress


Transliterate arabic characters into english - Wordpress

我想将阿拉伯字符转换为英文字符。

我想在wordpress中转换帖子的磁贴并音译为英文字符。并将其存储在像 $entitle 这样的变量中。

我该怎么做?

可以请人帮忙吗?

if ($this->registry->options['invetag_seotopic_ahmed_php'] AND $zwr_ahmedPHP == "show") {
    $en = str_split('{}DFL:"ZCV<>`qwertyuiop[]asdfghjkl;''zxcvnm,./~QWERYIOPASHJKXNM?');
    $ar = str_split('<>][/:"~}{,.ذضصثقفغعهخحجدشسيبلاتنمكطئءؤرىةوزظًٌَُّإ÷×؛ٍِأـ،ْآ’؟');
    for ($ahmedPHP = 0; $ahmedPHP < count($seotopic_thread); $ahmedPHP++) {
        $inv_tmp = str_replace($ar, $en, $seotopic_thread[$ahmedPHP]);
        $inv_ar_tmp [] = str_replace(array('لا', 'لآ', 'لأ', 'لإ', '‘'), array('b', 'B', 'G', 'T', 'U'), $inv_tmp);
    }
    if (is_array($inv_ar_tmp)) {
        $invtag = implode(" ", $inv_ar_tmp);
        $invtag = '<hr size="1" style="color:#D1D1E1; background-color:#D1D1E1" />' . "<p class='"alt2'" dir='"ltr'" style='"margin: 1px auto;  padding: 6px;border: 1px inset; width: 640px;height: 34px;text-align: left;overflow: auto'">" . $invtag . "</p>'n";
        $post[message] = $post[message] . $invtag;
    }
} 

您正在使用str_split来拆分阿拉伯语多字节字符。您需要使用多字节函数。

例如:

function multibyte_str_split($string) {
    $strlen = mb_strlen($string);
    while ($strlen) {
        $array[] = mb_substr($string, 0, 1, "UTF-8");
        $string = mb_substr($string, 1, $strlen, "UTF-8");
        $strlen = mb_strlen($string);
    }
    return $array;
}

$arb = <<<EOD
            <>][/:"~}{,.ذضصثقفغعهخحجدشسيبلاتنمكطئءؤرىةوزظًٌَُّإ÷×؛ٍِأـ،ْآ’؟
EOD;
$ar = multibye_str_split($arb);

编辑:将此函数放在主题的"函数.php"文件中。

function arb2en_title($post=0)
{
  $text = get_the_title($post);

$arb_en_map=array ( 
'''xd8''xa1' => '''', '''xd8''xa2' => '|', '''xd8''xa3' => '>',
'''xd8''xa4' => '&', '''xd8''xa5' => '<', '''xd8''xa6' => '}',
'''xd8''xa7' => 'A', '''xd8''xa8' => 'b', '''xd8''xa9' => 'p',
'''xd8''xaa' => 't', '''xd8''xab' => 'v', '''xd8''xac' => 'j',
'''xd8''xad' => 'H', '''xd8''xae' => 'x', '''xd8''xaf' => 'd',
'''xd8''xb0' => '*', '''xd8''xb1' => 'r', '''xd8''xb2' => 'z',
'''xd8''xb3' => 's', '''xd8''xb4' => '$', '''xd8''xb5' => 'S',
'''xd8''xb6' => 'D', '''xd8''xb7' => 'T', '''xd8''xb8' => 'Z',
'''xd8''xb9' => 'E', '''xd8''xba' => 'g', '''xd9''x80' => '_',
'''xd9''x81' => 'f', '''xd9''x82' => 'q', '''xd9''x83' => 'k',
'''xd9''x84' => 'l', '''xd9''x85' => 'm', '''xd9''x86' => 'n',
'''xd9''x87' => 'h', '''xd9''x88' => 'w', '''xd9''x89' => 'Y',
'''xd9''x8a' => 'y', '''xd9''x8b' => 'F', '''xd9''x8c' => 'N',
'''xd9''x8d' => 'K', '''xd9''x8e' => 'a', '''xd9''x8f' => 'u',
'''xd9''x90' => 'i', '''xd9''x91' => '~', '''xd9''x92' => 'o',
'''xd9''xb0' => '`', '''xd9''xb1' => '{', 
        );
foreach($arb_en_map as $key=>$value)
{
    $text=preg_replace("/$key/",$value,$text);
}
return  htmlentities($text);
}

在您的主题中,您可以通过调用 arb2en_title() 函数。

例如:

echo arb2en_title();

注意:我使用了巴克沃尔特音译图。

http://www.ldc.upenn.edu/myl/morph/buckwalter.html

编辑::

对于Arbic键盘映射,如以下链接:http://elfnoon.com/demo/maps.html

将arb_en_map数组替换为:

$arb_en_map=array(
            'د'=>']',
           'ج'=>'[',
           'ح'=>'p',
           'خ'=>'o',
           'ه'=>'i',
           'ع'=>'u',
           'غ'=>'y',
           'ف'=>'t',
           'ق'=>'r',
           'ث'=>'e',
           'ص'=>'w',
           'ض'=>'q',
           'ش'=>'a',
           'س'=>'s',
           'ي'=>'d',
           'ب'=>'f',
           'ل'=>'g',
           'ا'=>'h',
           'ت'=>'j',
           'ن'=>'k',
           'م'=>'l',
           'ك'=>';',
           'ط'=>'''',
           'ظ'=>'/',
           'ز'=>'.',
           'و'=>',',
           'ة'=>'m',
           'ى'=>'n',
           'ل'=>'b',
           'ر'=>'v',
           'ؤ'=>'c',
           'ء'=>'x',
           'ئ'=>'z',
           'إ'=>'Y',
           'لإ'=>'T',
           'لأ'=>'G',
           'أ'=>'H',
           'لآ'=>'B',
           'آ'=>'N'
);

或者您可以使用十六进制映射数组,两者是相同的:

$arb_en_map=array ( 
 '''xd8''xaf' => ']', '''xd8''xac' => '[', '''xd8''xad' => 'p',
 '''xd8''xae' => 'o', '''xd9''x87' => 'i', '''xd8''xb9' => 'u',
 '''xd8''xba' => 'y', '''xd9''x81' => 't', '''xd9''x82' => 'r',
 '''xd8''xab' => 'e', '''xd8''xb5' => 'w', '''xd8''xb6' => 'q',
 '''xd8''xb4' => 'a', '''xd8''xb3' => 's', '''xd9''x8a' => 'd',
 '''xd8''xa8' => 'f', '''xd9''x84' => 'B', '''xd8''xa7' => 'h',
 '''xd8''xaa' => 'j', '''xd9''x86' => 'k', '''xd9''x85' => 'l',
 '''xd9''x83' => ';', '''xd8''xb7' => '''', '''xd8''xb8' => '/',
 '''xd8''xb2' => '.', '''xd9''x88' => ',', '''xd8''xa9' => 'm', 
 '''xd9''x89' => 'n', '''xd8''xb1' => 'v', '''xd8''xa4' => 'c', 
 '''xd8''xa1' => 'x', '''xd8''xa6' => 'z', '''xd8''xa5' => 'Y',
 '''xd8''xa3' => 'H', '''xd8''xa2' => 'N',
 );