2016-01-06 141 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>'; 
} 
相关问题