我有一个xml文件,可以在任何语言(芬兰语,意大利语,瑞典语,荷兰语),我保存xml使用头
<?xml version="1.0" encoding="ISO-8859-1"?>
保存的xml包含特殊字符和一些html代码,如
⁏ for single code etc.
现在我想提供一个搜索文本功能,使用这个xml作为源,如下所示
$xml->xpath("//page[data[contains(., '".strtoupper($string)."')]]")
我挣扎的地方是,从php当我试图提供$search_text作为变量它不匹配这些⁏
和产生错误例如,单词nell’Esercizio在xml中作为nell’Esercizio
存在,因此我的搜索结果对于xpath是空的。
我尝试了htmlentities和htmlspecialchars,但没有运气。对于特殊字符,我尝试了utf8_encode(), utf8_decode()组合,它工作(芬兰语),但对于这些html字符,它失败了。
通过php应用程序在diff语言中搜索xml文件中的文本的正确方法应该是什么?
Xpath表达式必须是UTF-8,与文档的编码无关。DOM使用UTF-8并在加载/保存时进行转换。我认为你的问题是strtoupper()
。您需要使用unicode保存音译。
- ext/intl ext/mbstring