【发布时间】:2014-05-06 14:59:16
【问题描述】:
是否可以在 PHP 中比较这些字符串:
Æther == AEther == Aether
我想从这个等价中得到一个肯定的结果
我实际上尝试了多种方法,但没有真正成功:
将 Æ 和任何特殊字符替换为 Ae 为 strtr(性能不佳,我宁愿保持字符串不变)
使用 strcmp/strcasecmp,这解决了大写问题,但我仍然无法处理所有 UTF-8 字符
我想要实现的是解析从 json 检索到的元素列表并与其他一些 json 文件匹配,有些可以不同的拼写(utf8 或非 utf8,大写等),所以,现在,我发现这样做的唯一方法是制作第三个这样的 json:
{
"match": {
"name": "Unravel the \u00c6ther"
},
"replace": {
"name": "Unravel the aether"
}
我用正确的字符串替换了基本字符串,但我想找到一种方法来自动化这个过程。
【问题讨论】:
-
这可能是可能的,但您必须编写一些代码才能做到这一点。请对此进行研究并告诉我们您已经尝试过什么。
-
我的错!我刚刚用一些细节编辑了这个问题。
-
一般良好做法:如果您不想修改原始字符串,请不要使用
strtr()或str_replace()来实际更新字符串。检查等价时只需使用该功能..."Test"==str_replace("x","t", "Tesx") -
这个来自另一个帖子的答案可能对你有用Answer