我使用以下Xpath来搜索关键字,但是当我在$search
中使用“@”时,查询无效。
$findword= 'Find @ replace';
$dom = new DOMDocument();
preg_match("/$findword/i", $findResultRow['Description'],$matches);
$dom->loadHtml(mb_convert_encoding(strtolower($findResultRow['Description']), 'HTML-ENTITIES', "UTF-8"));
$xpath = new DOMXPath($dom);
$search = strtolower($findword);
foreach($xpath->query("(//*[contains(text(), $search)])[1]") as $node)
{
$desc=$findResultRow['Description'];
}
我做错了什么?
答案 0 :(得分:0)
如果要搜索文字字符串,则需要
foreach($xpath->query("(//*[contains(text(), '$search')])[1]") as $node)
这样,PHP变量的字符串值就像foo@example.com
一样,XPath表达式将是//*[contains(text(), 'foo@example.com')]
。