2016-01-06 137 views
0

我想要使用PHPQuery在給定頁面上獲取包含特定URL頁面的所有鏈接。我正在使用PHPQuery的PHP支持語法。PHPQuery - 獲取包含特定URL頁面的所有鏈接

include_once 'phpQuery.php'; 
$url = 'http://www.phonearena.com/phones/manufacturer/'; 
$doc = phpQuery::newDocumentFile($url); 

$urls = $doc['a']; 

foreach ($urls as $url) { 
    echo pq($url)->attr('href') . '<br>'; 
} 

上面的代碼工作。但它顯示了所有鏈接 我只想顯示那些包含「/ phones/manufacturer /」的鏈接。 我試過,但它說明不了什麼:下面的編碼從該網站獲得的所有URL

include_once 'phpQuery.php'; 
$url = 'http://www.phonearena.com/phones/manufacturer/'; 
$doc = phpQuery::newDocumentFile($url); 

$urls = $doc['a']; 

foreach ($urls as $url) { 
    echo pq($url)->attr('href:contains("/phones/manufacturer/")') . '<br>'; 
} 

回答

3

使用,

 $doc = new DOMDocument(); 
       @$doc->loadHTML(file_get_contents('http://www.phonearena.com/phones/manufacturer/')); 

       $ahreftags = $doc->getElementsByTagName('a'); 

        foreach ($ahreftags as $tag) { 
         echo "<br/>"; 
         echo $tag->getAttribute('href'); 
         echo "<br/>"; 
        } 


exit; 
1

試試這個,有點italian guidejquery documentation

include_once 'phpQuery.php'; 
$url = 'http://www.phonearena.com/phones/manufacturer/'; 
$doc = phpQuery::newDocumentFile($url); 

$urls = $doc['a[href*="/phones/manufacturer/"]']; 

foreach ($urls as $url) { 
    echo pq($url)->attr('href') . '<br>'; 
} 
相關問題