php - 如何检查包含 HTML 字符的条目的数组?
问题描述
我有一个表示希腊字母的数组,表示为 HTML 字符串:
$alphabet = ["α", "β", "γ", "δ", ...]
类似的字符串变量存储在 MySQL 数据库(我正在使用mysqli
)中并从中检索。但是,当我从数据库中检索$db_result
其值的变量"α"
并使用该函数检查它是否在$alphabet
数组中in_array()
时,它从未找到:
if( in_array($db_result, $alphabet) ){
print_r("That's Greek to me!");
}
/* Result: Nothing ever prints */
如果我print_r()
都$db_result
和$alphabet
,它们都打印相同的字符。也就是说,$db_result
打印为 'α' 并$alphabet
打印为Array ( [0] => α [1] => β [2] => γ ...)
.
在页面源代码中,$db_resul
t 值显示为实际的希腊字母,而$alphabet
数组条目是 HTML α
。我并不关心显示,而是关心逻辑:我需要in_array()
将 alpha 识别为 alpha
一旦从数据库中检索到值,编码肯定会有所不同"α"
,但我不知道什么或如何修复它。
解决方案
数据库结果是实际字符,因此将其转换为 HTML 实体进行检查:
if( in_array(htmlentities($db_result), $alphabet) ){
print_r("That's Greek to me!");
}
推荐阅读
- javascript - 正则表达式从 Javascript 到 MySQL
- database - HANA 中的 ADBC 临时表
- windows - 按不同的 UserId 将 CSV 文件拆分为单独的文件
- c - 'void scan_fraction(int*, int*)' 的新声明含糊不清
- validation - 是否可以让人们仅在具有 VIEW 权限的 Google 工作表上打开滚动菜单?
- mysql - Hibernate 在使用 springboot 运行的现有表上创建新列
- python - 使用 .isin() pandas (python) 测试的列中的替代值
- html - 如何防止div内的属性使用项目的css
- mysql - 用引号更新部分文本
- macos - 在 MacOS 中更改硬盘驱动器的图标时 - icns 文件实际存储在哪里?