php – 如何使用XPath执行不区分大小写的搜索并支持非英语字符?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何使用XPath执行不区分大小写的搜索并支持非英语字符?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用以下代码在 @L_126_1@文件中执行搜索
$result = $XMl->xpath("//StopPoint[contains(StopName,'$query')]");

其中$query是搜索查询,StopName是公共汽车站的名称.问题是,它区分大小写.

不仅如此,我还可以搜索ÆØÅæøå这样的非英语字符来返回挪威名字.

这怎么可能?

在XPath 1.0中(我相信,你可以用PHP SimpleXML获得最好的),你必须使用translate()函数从混合大小写输入生成全小写输出.

为方便起见,我将它包装在这样的函数中:

function findStopPointByName($xml,$query) {
  $upPEr = "abcDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"; // add any characters...
  $lower = "abcdefghijklmnopqrstuvwxyzæøå"; // ...that are missing

  $arg_stopname = "translate(StopName,'$upper','$lower')";
  $arg_query    = "translate('$query','$lower')";

  return $xml->xpath("//StopPoint[contains($arg_stopname,$arg_query)");
}

作为一种消毒措施,我要么完全禁止或者在$query中转义单引号,因为如果它们被忽略,它们将破坏你的XPath字符串.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何使用XPath执行不区分大小写的搜索并支持非英语字符?全部内容,希望文章能够帮你解决php – 如何使用XPath执行不区分大小写的搜索并支持非英语字符?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。