如何在PHP中读取非字符(如阿拉伯语单词)
我正在将一个只有一列的CSV文件转换为PHP数组。Csv列包含一些非英语字符,如阿拉伯语字符,但PHP正确读取英语字符,但将阿拉伯语字符更改为一些数字。这是我的代码示例如何在PHP中读取非字符(如阿拉伯语单词),php,utf-8,utf8-decode,Php,Utf 8,Utf8 Decode,我正在将一个只有一列的CSV文件转换为PHP数组。Csv列包含一些非英语字符,如阿拉伯语字符,但PHP正确读取英语字符,但将阿拉伯语字符更改为一些数字。这是我的代码示例 <?php function str_to_csv( $row ) { if( $row=='' ) { return array(); } $a = array(); $src = explode(',', $row ); do{ $p
<?php
function str_to_csv( $row )
{
if( $row=='' )
{
return array();
}
$a = array();
$src = explode(',', $row );
do{
$p = array_shift($src);
while( mb_substr_count($p,'"') % 2 != 0 )
{
if( count($src)==0 ){ return false; }
$p .= ','.array_shift($src);
}
$match = null;
if( preg_match('/^"(.+)"[
]*$/', $p, $match ))
{
$p = $match[1];
}
$a[] = str_replace('""','"',$p);
}while( count($src) > 0 );
return $a;
}
function file_getcsv( $f )
{
$line = fgets( $f );
while( ($a = str_to_csv($line))===false )
{
if( feof($f) ){ return false; }
$line .= "\n".fgets( $f );
}
return $a;
}
function file_to_csv( $filename )
{
ini_set("auto_detect_line_endings", true);
$a = array();
$f = fopen($filename,'r');
while( !feof($f) )
{
$rec = file_getcsv($f);
if( $rec===false ){ return false; }
if( !empty($rec) )
{
$a[] = $rec;
}
}
fclose($f);
return $a;
}
$data = file_to_csv('club3.csv');
echo '<pre>';print_r($data);
?>
当我进行var_转储时,数组是这样的
function fixArabicCharactersAndCreateProbablyString($word)
{
$new_word = array();
$char_type = array();
$isolated_chars = array('ا', 'د', 'ذ', 'أ', 'آ', 'ر', 'ؤ', 'ء', 'ز', 'و', 'ى', 'ة', 'إ');
$alef = array('أ','ا','إ','آ');
$lam = array('ل');
$al_char = array();
$all_chars = array
(
'ا' => array(
'la_beg' => 'ﻻ',
'la_end' => 'ﻼ',
'middle' => 'ﺎ',
'isolated' => 'ﺍ'
),
'إ' => array(
'la_beg' => 'ﻹ',
'la_end' => 'ﻺ',
'middle' => 'ﺈ',
'isolated' => 'ﺇ'
),
'ؤ' => array(
'middle' => 'ﺅ',
'isolated' => 'ﺆ'
),
'ء' => array(
'middle' => 'ﺀ',
'isolated' => 'ﺀ'
),
'أ' => array(
'la_beg' => 'ﻷ',
'la_end' => 'ﻸ',
'middle' => 'ﺄ',
'isolated' => 'ﺃ'
),
'آ' => array(
'la_beg' => 'ﻵ',
'la_end' => 'ﻶ',
'middle' => 'ﺂ',
'isolated' => 'ﺁ'
),
'ى' => array(
'middle' => 'ﻰ',
'isolated' => 'ﻯ'
),
'ب' => array(
'beginning' => 'ﺑ',
'middle' => 'ﺒ',
'end' => 'ﺐ',
'isolated' => 'ﺏ'
),
'ت' => array(
'beginning' => 'ﺗ',
'middle' => 'ﺘ',
'end' => 'ﺖ',
'isolated' => 'ﺕ'
),
'ث' => array(
'beginning' => 'ﺛ',
'middle' => 'ﺜ',
'end' => 'ﺚ',
'isolated' => 'ﺙ'
),
'ج' => array(
'beginning' => 'ﺟ',
'middle' => 'ﺠ',
'end' => 'ﺞ',
'isolated' => 'ﺝ'
),
'ح' => array(
'beginning' => 'ﺣ',
'middle' => 'ﺤ',
'end' => 'ﺢ',
'isolated' => 'ﺡ'
),
'خ' => array(
'beginning' => 'ﺧ',
'middle' => 'ﺨ',
'end' => 'ﺦ',
'isolated' => 'ﺥ'
),
'د' => array(
'middle' => 'ﺪ',
'isolated' => 'ﺩ'
),
'ذ' => array(
'middle' => 'ﺬ',
'isolated' => 'ﺫ'
),
'ر' => array(
'middle' => 'ﺮ',
'isolated' => 'ﺭ'
),
'ز' => array(
'middle' => 'ﺰ',
'isolated' => 'ﺯ'
),
'س' => array(
'beginning' => 'ﺳ',
'middle' => 'ﺴ',
'end' => 'ﺲ',
'isolated' => 'ﺱ'
),
'ش' => array(
'beginning' => 'ﺷ',
'middle' => 'ﺸ',
'end' => 'ﺶ',
'isolated' => 'ﺵ'
),
'ص' => array(
'beginning' => 'ﺻ',
'middle' => 'ﺼ',
'end' => 'ﺺ',
'isolated' => 'ﺹ'
),
'ض' => array(
'beginning' => 'ﺿ',
'middle' => 'ﻀ',
'end' => 'ﺾ',
'isolated' => 'ﺽ'
),
'ط' => array(
'beginning' => 'ﻃ',
'middle' => 'ﻄ',
'end' => 'ﻂ',
'isolated' => 'ﻁ'
),
'ظ' => array(
'beginning' => 'ﻇ',
'middle' => 'ﻈ',
'end' => 'ﻆ',
'isolated' => 'ﻅ'
),
'ع' => array(
'beginning' => 'ﻋ',
'middle' => 'ﻌ',
'end' => 'ﻊ',
'isolated' => 'ﻉ'
),
'غ' => array(
'beginning' => 'ﻏ',
'middle' => 'ﻐ',
'end' => 'ﻎ',
'isolated' => 'ﻍ'
),
'ف' => array(
'beginning' => 'ﻓ',
'middle' => 'ﻔ',
'end' => 'ﻒ',
'isolated' => 'ﻑ'
),
'ق' => array(
'beginning' => 'ﻗ',
'middle' => 'ﻘ',
'end' => 'ﻖ',
'isolated' => 'ﻕ'
),
'ك' => array(
'beginning' => 'ﻛ',
'middle' => 'ﻜ',
'end' => 'ﻚ',
'isolated' => 'ﻙ'
),
'ل' => array(
'beginning' => 'ﻟ',
'middle' => 'ﻠ',
'end' => 'ﻞ',
'isolated' => 'ﻝ'
),
'م' => array(
'beginning' => 'ﻣ',
'middle' => 'ﻤ',
'end' => 'ﻢ',
'isolated' => 'ﻡ'
),
'ن' => array(
'beginning' => 'ﻧ',
'middle' => 'ﻨ',
'end' => 'ﻦ',
'isolated' => 'ﻥ'
),
'ه' => array(
'beginning' => 'ﻫ',
'middle' => 'ﻬ',
'end' => 'ﻪ',
'isolated' => 'ﻩ'
),
'و' => array(
'middle' => 'ﻮ',
'isolated' => 'ﻭ'
),
'ي' => array(
'beginning' => 'ﻳ',
'middle' => 'ﻴ',
'end' => 'ﻲ',
'isolated' => 'ﻱ'
),
'ئ' => array(
'beginning' => 'ﺋ',
'middle' => 'ﺌ',
'end' => 'ﺊ',
'isolated' => 'ﺉ'
),
'ة' => array(
'middle' => 'ﺔ',
'isolated' => 'ﺓ'
)
);
if(in_array($word[0].$word[1], $isolated_chars))
{
$new_word[] = $all_chars[$word[0].$word[1]]['isolated'];
$char_type[] = 'not_normal';
$al_char[] = false;
}
else
{
if(in_array($word[0].$word[1], $lam) AND in_array($word[2].$word[3], $alef))
{
$new_word[] = $all_chars [$word[2].$word[3]]['la_beg'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[0].$word[1]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
if(strlen($word) > 4)
{
if($char_type[0] == 'not_normal')
{
if(in_array($word[2].$word[3], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[2].$word[3]]['isolated'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
else
{
if(in_array($word[2].$word[3], $lam) AND in_array($word[4].$word[5], $alef))
{
$new_word[] = $all_chars[$word[4].$word[5]]['la_beg'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[2].$word[3]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
}
else
{
if(in_array($word[2].$word[3], $lam) AND in_array($word[4].$word[5], $alef))
{
$new_word[] = $all_chars[$word[4].$word[5]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[2].$word[3]]['middle'];
if(in_array($word[2].$word[3], $isolated_chars))
{
$char_type[] = 'not_normal';
$al_char[] = false;
}
else
{
$char_type[] = 'normal';
$al_char[] = false;
}
}
}
$x = 4;
}
else
{
$x = 2;
}
for($x=4;$x< (strlen($word)-4) ;$x++)
{
if($char_type[count($char_type)-1] == 'not_normal' AND $x %2 == 0)
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_beg'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
elseif($char_type[count($char_type)-1] == 'normal' AND $x %2 == 0)
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
}
if(strlen($word)>6)
{
if($char_type[count($char_type)-1] == 'not_normal')
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
else
{
if($word[strlen($word)-2].$word[strlen($word)-1] == 'ء')
{
if($al_char[count($al_char)-1] == true)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
$char_type[] = 'normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
$x += 2;
}
elseif($char_type[count($char_type)-1] == 'normal' AND $al_char[count($al_char)-1] == false)
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'normal';
$al_char[] = false;
}
$x += 2;
}
}
if($char_type[count($char_type)-1] == 'not_normal')
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
}
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
}
}
else
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['end'];
}
}
return implode('',array_reverse($new_word));
}
阿拉伯语有一个大问题 问题不仅在于阅读字母,而且阿拉伯语包含几种形式的字母,单词的开头、中间和结尾 例子: ب ، ـبـ ، ـب ، ـب 要解决这个问题,可以使用unicode 使用此函数修复所有问题 注:此函数由以下人员创建:Abd AL-Latif 请参见github上的-> 职能:
$word = 'لا اله الا الله محمد رسول الله , اللهم لا علم لي الا ما علمتني انك انت العليم الحكيم';
fixArabicCharactersAndCreateProbablyString($word)
请参阅:希望这能回答问题您可能正在正确阅读它们,但除非您使用适合显示环境的编码输出,否则您将得到“损坏”文本。e、 g.将utf-8文本输出到iso8859/拉丁语-1术语我该怎么办?我的表格中有一些阿拉伯文/中文字符我不想在web上显示我需要它们在数组中正确显示,我需要做一些处理并将其导出到excel文件我已设置了标题('Content Type:text/html;charset=utf-8');在标题中,但仍然是相同的问题如果您对代码有任何问题,可以问我,
function fixArabicCharactersAndCreateProbablyString($word)
{
$new_word = array();
$char_type = array();
$isolated_chars = array('ا', 'د', 'ذ', 'أ', 'آ', 'ر', 'ؤ', 'ء', 'ز', 'و', 'ى', 'ة', 'إ');
$alef = array('أ','ا','إ','آ');
$lam = array('ل');
$al_char = array();
$all_chars = array
(
'ا' => array(
'la_beg' => 'ﻻ',
'la_end' => 'ﻼ',
'middle' => 'ﺎ',
'isolated' => 'ﺍ'
),
'إ' => array(
'la_beg' => 'ﻹ',
'la_end' => 'ﻺ',
'middle' => 'ﺈ',
'isolated' => 'ﺇ'
),
'ؤ' => array(
'middle' => 'ﺅ',
'isolated' => 'ﺆ'
),
'ء' => array(
'middle' => 'ﺀ',
'isolated' => 'ﺀ'
),
'أ' => array(
'la_beg' => 'ﻷ',
'la_end' => 'ﻸ',
'middle' => 'ﺄ',
'isolated' => 'ﺃ'
),
'آ' => array(
'la_beg' => 'ﻵ',
'la_end' => 'ﻶ',
'middle' => 'ﺂ',
'isolated' => 'ﺁ'
),
'ى' => array(
'middle' => 'ﻰ',
'isolated' => 'ﻯ'
),
'ب' => array(
'beginning' => 'ﺑ',
'middle' => 'ﺒ',
'end' => 'ﺐ',
'isolated' => 'ﺏ'
),
'ت' => array(
'beginning' => 'ﺗ',
'middle' => 'ﺘ',
'end' => 'ﺖ',
'isolated' => 'ﺕ'
),
'ث' => array(
'beginning' => 'ﺛ',
'middle' => 'ﺜ',
'end' => 'ﺚ',
'isolated' => 'ﺙ'
),
'ج' => array(
'beginning' => 'ﺟ',
'middle' => 'ﺠ',
'end' => 'ﺞ',
'isolated' => 'ﺝ'
),
'ح' => array(
'beginning' => 'ﺣ',
'middle' => 'ﺤ',
'end' => 'ﺢ',
'isolated' => 'ﺡ'
),
'خ' => array(
'beginning' => 'ﺧ',
'middle' => 'ﺨ',
'end' => 'ﺦ',
'isolated' => 'ﺥ'
),
'د' => array(
'middle' => 'ﺪ',
'isolated' => 'ﺩ'
),
'ذ' => array(
'middle' => 'ﺬ',
'isolated' => 'ﺫ'
),
'ر' => array(
'middle' => 'ﺮ',
'isolated' => 'ﺭ'
),
'ز' => array(
'middle' => 'ﺰ',
'isolated' => 'ﺯ'
),
'س' => array(
'beginning' => 'ﺳ',
'middle' => 'ﺴ',
'end' => 'ﺲ',
'isolated' => 'ﺱ'
),
'ش' => array(
'beginning' => 'ﺷ',
'middle' => 'ﺸ',
'end' => 'ﺶ',
'isolated' => 'ﺵ'
),
'ص' => array(
'beginning' => 'ﺻ',
'middle' => 'ﺼ',
'end' => 'ﺺ',
'isolated' => 'ﺹ'
),
'ض' => array(
'beginning' => 'ﺿ',
'middle' => 'ﻀ',
'end' => 'ﺾ',
'isolated' => 'ﺽ'
),
'ط' => array(
'beginning' => 'ﻃ',
'middle' => 'ﻄ',
'end' => 'ﻂ',
'isolated' => 'ﻁ'
),
'ظ' => array(
'beginning' => 'ﻇ',
'middle' => 'ﻈ',
'end' => 'ﻆ',
'isolated' => 'ﻅ'
),
'ع' => array(
'beginning' => 'ﻋ',
'middle' => 'ﻌ',
'end' => 'ﻊ',
'isolated' => 'ﻉ'
),
'غ' => array(
'beginning' => 'ﻏ',
'middle' => 'ﻐ',
'end' => 'ﻎ',
'isolated' => 'ﻍ'
),
'ف' => array(
'beginning' => 'ﻓ',
'middle' => 'ﻔ',
'end' => 'ﻒ',
'isolated' => 'ﻑ'
),
'ق' => array(
'beginning' => 'ﻗ',
'middle' => 'ﻘ',
'end' => 'ﻖ',
'isolated' => 'ﻕ'
),
'ك' => array(
'beginning' => 'ﻛ',
'middle' => 'ﻜ',
'end' => 'ﻚ',
'isolated' => 'ﻙ'
),
'ل' => array(
'beginning' => 'ﻟ',
'middle' => 'ﻠ',
'end' => 'ﻞ',
'isolated' => 'ﻝ'
),
'م' => array(
'beginning' => 'ﻣ',
'middle' => 'ﻤ',
'end' => 'ﻢ',
'isolated' => 'ﻡ'
),
'ن' => array(
'beginning' => 'ﻧ',
'middle' => 'ﻨ',
'end' => 'ﻦ',
'isolated' => 'ﻥ'
),
'ه' => array(
'beginning' => 'ﻫ',
'middle' => 'ﻬ',
'end' => 'ﻪ',
'isolated' => 'ﻩ'
),
'و' => array(
'middle' => 'ﻮ',
'isolated' => 'ﻭ'
),
'ي' => array(
'beginning' => 'ﻳ',
'middle' => 'ﻴ',
'end' => 'ﻲ',
'isolated' => 'ﻱ'
),
'ئ' => array(
'beginning' => 'ﺋ',
'middle' => 'ﺌ',
'end' => 'ﺊ',
'isolated' => 'ﺉ'
),
'ة' => array(
'middle' => 'ﺔ',
'isolated' => 'ﺓ'
)
);
if(in_array($word[0].$word[1], $isolated_chars))
{
$new_word[] = $all_chars[$word[0].$word[1]]['isolated'];
$char_type[] = 'not_normal';
$al_char[] = false;
}
else
{
if(in_array($word[0].$word[1], $lam) AND in_array($word[2].$word[3], $alef))
{
$new_word[] = $all_chars [$word[2].$word[3]]['la_beg'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[0].$word[1]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
if(strlen($word) > 4)
{
if($char_type[0] == 'not_normal')
{
if(in_array($word[2].$word[3], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[2].$word[3]]['isolated'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
else
{
if(in_array($word[2].$word[3], $lam) AND in_array($word[4].$word[5], $alef))
{
$new_word[] = $all_chars[$word[4].$word[5]]['la_beg'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[2].$word[3]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
}
else
{
if(in_array($word[2].$word[3], $lam) AND in_array($word[4].$word[5], $alef))
{
$new_word[] = $all_chars[$word[4].$word[5]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[2].$word[3]]['middle'];
if(in_array($word[2].$word[3], $isolated_chars))
{
$char_type[] = 'not_normal';
$al_char[] = false;
}
else
{
$char_type[] = 'normal';
$al_char[] = false;
}
}
}
$x = 4;
}
else
{
$x = 2;
}
for($x=4;$x< (strlen($word)-4) ;$x++)
{
if($char_type[count($char_type)-1] == 'not_normal' AND $x %2 == 0)
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_beg'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
elseif($char_type[count($char_type)-1] == 'normal' AND $x %2 == 0)
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
}
if(strlen($word)>6)
{
if($char_type[count($char_type)-1] == 'not_normal')
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
else
{
if($word[strlen($word)-2].$word[strlen($word)-1] == 'ء')
{
if($al_char[count($al_char)-1] == true)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
$char_type[] = 'normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['beginning'];
$char_type[] = 'normal';
$al_char[] = false;
}
}
$x += 2;
}
elseif($char_type[count($char_type)-1] == 'normal' AND $al_char[count($al_char)-1] == false)
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'not_normal';
}
$al_char[] = false;
}
elseif(in_array($word[$x].$word[$x+1], $lam) AND in_array($word[$x+2].$word[$x+3], $alef))
{
$new_word[] = $all_chars[$word[$x+2].$word[$x+3]]['la_end'];
$char_type[] = 'not_normal';
$al_char[] = true;
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
$char_type[] = 'normal';
$al_char[] = false;
}
$x += 2;
}
}
if($char_type[count($char_type)-1] == 'not_normal')
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
if($al_char[count($al_char)-1] == false)
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
}
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['isolated'];
}
}
else
{
if(in_array($word[$x].$word[$x+1], $isolated_chars))
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['middle'];
}
else
{
$new_word[] = $all_chars[$word[$x].$word[$x+1]]['end'];
}
}
return implode('',array_reverse($new_word));
}
$word = 'لا اله الا الله محمد رسول الله , اللهم لا علم لي الا ما علمتني انك انت العليم الحكيم';
fixArabicCharactersAndCreateProbablyString($word)