如何在URL中查找特定查询并显示整个链接

时间:2013-09-04 13:32:25

标签: php dom

目前的代码是这样的:

include 'simple_html_dom.php';
    // Create DOM from URL or file
    $html = file_get_html('http://www.AnyLinkAlsoCan.com');


    // Find all links 
    foreach($html->find('a') as $element) 

           echo $element->href . '<br>';

它将抓取并找到这样的标记:

<a href="http://news.example.com/node">

并输出它在网站上找到的所有链接。

实施例

http://news.example.com.my/node/321072
http://news.example.com.my/taxonomy/term/2
http://news.example.com.my/node/321060?tid=2

我想搜索仅包含?tid=的网址,如您在示例中的第3个网址上所示。

http://news.example.com.my/node/321060?tid=2

我替换echo $element->href="*?tid,但这只是返回错误。有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

您可以使用preg_match,也可以检查所有网址是否包含?tid

<?php
include 'simple_html_dom.php';
// Create DOM from URL or file
$html = file_get_html('http://www.AnyLinkAlsoCan.com');


// Find all links 
foreach($html->find('a') as $element) {
       $search = '?tid';
       if(strpos($element->href,$search)) {
           echo $element->href . '<br>';
       }
}
?>

答案 1 :(得分:0)

使用parse_url()解析每个网址,然后根据PHP_URL_QUERY

仅选择您想要的网址