我有一个数组,它将希腊字母表示为HTML字符串:
$alphabet = ["α", "β", "γ", "δ", ...]
类似的字符串变量存储在MySQL数据库(我使用的是mysqli
)中,并从该数据库中检索。但是,当我从DB中检索一个值为"α"
的变量$db_result
,并使用in_array()
函数检查它是否在$alphabet
数组中时,始终没有找到它:
if( in_array($db_result, $alphabet) ){
print_r("That's Greek to me!");
}
/* Result: Nothing ever prints */
如果我同时对$db_result
和$alphabet
执行print_r()
操作,它们将打印相同的字符。也就是说,$db_result
打印为“Array ( [0] => α [1] => β [2] => γ ...)
”,而$alphabet
打印为“α”。
在页面源代码中,HTMLt值显示为实际的希腊字母,而$db_resul
数组条目为$alphabet
α
。我更关心的是逻辑,而不是显示:我需要in_array()
将alpha识别为alpha
一旦从DB检索值"α"
,编码一定会有所不同,但我不知道该如何修复它。
发布于 2018-12-14 05:31:58
数据库结果是实际的字符,因此将其转换为HTML实体以进行检查:
if( in_array(htmlentities($db_result), $alphabet) ){
print_r("That's Greek to me!");
}
https://stackoverflow.com/questions/53770257
复制相似问题