【发布时间】:2018-11-09 14:07:19
【问题描述】:
我正在尝试将希伯来语单词拆分为字母并获取相应符号的索引。我已经设置了 UTF-8 标头并检查了文件的编码实际上是 UTF-8。但是由于某种原因,PHP 无法正确比较符号并且不返回所需的符号 ID,而如果我输出 $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
(
)
附:尝试在相同的文件中以相同的方式输出俄语字母,它们工作正常。看起来问题不是编码问题
【问题讨论】: