Я пытаюсь разбить слово на иврите на буквы и получить индекс соответствующего символа.Я установил заголовок UTF-8 и проверил, что кодировка файлов на самом деле UTF-8.Но по какой-то причине PHP не может сделать правильное сравнение символов и не возвращает требуемый идентификатор символа, в то время как если я выведу массив $ text, он выведет его нормально.У меня есть массив букв иврита:
$id_symbols = array(
280=>'א',
281=>'בּ',
282=>'ב',
283=>'ג',
284=>'ד',
285=>'ה',
286=>'ו',
287=>'ז',
288=>'ח',
289=>'ט',
290=>'י',
291=>'כּ',
292=>'כ',
293=>'ךּ',
294=>'ך',
295=>'ל',
296=>'מ',
297=>'ם',
298=>'נ',
299=>'ן',
300=>'ס',
301=>'ע',
302=>'פּ',
303=>'פ',
304=>'ף',
305=>'צ',
306=>'ץ',
307=>'ק',
308=>'ר',
309=>'שׁ',
310=>'שׂ',
311=>'תּ',
312=>'ת',
);
Я отправляю запрос на публикацию на страницу, подобную этой:
header('Content-type: text/html; charset=utf-8');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://pr.animizer.net/word-api.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"api_key=some_key&text=מילה&font=arial&font_size=30&fore_color=000000&back_color=FFFFFF&template=1,2,3&speed=4");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
exit($server_output);
Получен запрос POST. Я пытаюсь получить ключ откаждая соответствующая буква иврита:
function mb_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;
}
$text = mb_str_split($_POST['text']); //splitting text into symbols
foreach($text as $t){
foreach($id_symbols as $key=>$value){
if($value == $t){
$word[] = $key;
}
}
}
print_r($word);
и вывод
Array
(
)
PS Пытался одинаково выводить русские буквы в одних и тех же файлах, и они работают нормально.Не похоже, что проблема в кодировке