可以simplehtmldom
用于查找内容(非属性)等于$_POST
值的DIV吗?
在使用DIV
修改网页之前,我需要检查内容为John doe
的内容FWRITE
是否已经存在 - 与之对比的值将以simplehtmldom
值提供给$_POST
。这些都没有进入/通过数据库,如果我错过了在simplehtmldom
doc中解决这个问题的事情,那么事先抱歉,我只是没有看到它。
假设:$_POST['data'] = "John Doe";
且当前页面有:
<div id="aaa"> John Doe </div>
<div id="bbb"> Jane Doe </div>
<div id="ccc"> Mike Doe</div>
以下内容是否可以找到内容为DIV
的{{1}}?
"John Doe"
答案 0 :(得分:1)
是的,它在关于在标签内获取文本的文档中。您需要使用->innertext
魔法属性。只需使用stripos()
检查该特定值是否存在。
示例:
$found = false;
foreach($html->find('div') as $div) {
if(stripos($div->innertext, $_POST['data']) !== false) {
$found = true;
}
}
if($found) {
// john doe exists
} else {
// he doesn't exist in each div
}
我个人的偏好:
$dom = new DOMDocument();
$dom->loadHTMLFile('your_url');
$xpath = new DOMXpath($dom);
if($xpath->query('//div[contains(., "'.$_POST['data'].'")]')->length > 0) {
// john doe is there
} else {
// john doe isn't
}
答案 1 :(得分:1)
简单无法做到。您将要切换到this one并执行:
$html->find('div[text=" John Doe "]', 0);