我想找到带有班级名称的div,但我没有全班名。例如:
$html = file_get_contents($_POST['url']);
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = '';
foreach($xpath->evaluate('//div[@class="article"]/node()') as $childNode) {
$result .= $dom->saveHtml($childNode);
}
查找div的代码:
printf("%s\n", my_array[i]);
我想找到div,哪个类包含单词" article"。请帮忙。
答案 0 :(得分:0)
您可以在XPath中使用contains
:
$xpath->evaluate('//div[contains(@class, "article")]/node()')
测试:
<?php
$html = '<div class="article_main">Article</div>';
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = '';
foreach($xpath->evaluate('//div[contains(@class, "article")]/node()') as $childNode) {
$result .= $dom->saveHtml($childNode);
}
echo $result;
输出:
Article
答案 1 :(得分:0)
是否要在服务器端完成?如果不是,那么你可以用jQuery来做,它只是:
var results = $(div).filter(function(){ return $(this).hasClass('whatever'); /* whatever is class name here */ });
或
var results = $(div).filter(function(){ return $(this).text().indexOf("text to search for") !== -1 });
对于服务器端处理,只需使用AJAX将其发送到您的PHP代码