可能重复:
Finding links matching given string in xpath/domdocument query
您好我有一个包含许多链接的HTML。我现在能够得到链接,只是到处都是,我只会得到一个单词。
$dom = new DOMDocument;
$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
foreach ($links as $link){
echo $link->getAttribute('href');
}
我只列出包含某个单词的链接, 示例:sendspace.com
结果或多或少低于:
http://www.fileserve.com/file/eDpDMm9sad/
http://www.fileserve.com/file/7s83hjh347/
然后我会将这些链接转换为sha1。
转换后保存已应用于包含单词的链接的html sha1。
答案 0 :(得分:2)
使用phpQuery,您可以遍历DOM并找到包含所需内容的<a>
属性的锚点(href
):
$dom = phpQuery::newDocument($htmlSource);
$anchors = $dom->find('a[href|=sendspace.com]');
$urls = array();
if($anchors) {
foreach($anchors as $anchor) {
$anchor = pq($anchor);
$urls[] = $anchor->attr('href');
}
}
答案 1 :(得分:0)
您要找的是regular expressions。看一下PHP的preg_match_all()函数。
答案 2 :(得分:0)
您可以使用正则表达式匹配字符串中的单词(或其他任何内容),如下所示:
foreach ($links as $link) {
if (preg_match("/example\.com/i", $link->getAttribute('href'))) {
// do things here!
}
}