多语言支持XML文本搜索php


multilanguage support to xml text search php

我有一个xml文件,可以在任何语言(芬兰语,意大利语,瑞典语,荷兰语),我保存xml使用头

<?xml version="1.0" encoding="ISO-8859-1"?>

保存的xml包含特殊字符和一些html代码,如

&#8271; for single code etc.

现在我想提供一个搜索文本功能,使用这个xml作为源,如下所示

$xml->xpath("//page[data[contains(., '".strtoupper($string)."')]]")

我挣扎的地方是,从php当我试图提供$search_text作为变量它不匹配这些&#8271;和产生错误例如,单词nell’Esercizio在xml中作为nell&#8217;Esercizio存在,因此我的搜索结果对于xpath是空的。

我尝试了htmlentities和htmlspecialchars,但没有运气。对于特殊字符,我尝试了utf8_encode(), utf8_decode()组合,它工作(芬兰语),但对于这些html字符,它失败了。

通过php应用程序在diff语言中搜索xml文件中的文本的正确方法应该是什么?

Xpath表达式必须是UTF-8,与文档的编码无关。DOM使用UTF-8并在加载/保存时进行转换。我认为你的问题是strtoupper()。您需要使用unicode保存音译。

    ext/intl
  • ext/mbstring