2016-01-06 2 views
0

Я пытаюсь получить все ссылки, содержащие определенную страницу URL-адреса на заданной странице с помощью PHPQuery. Я использую синтаксис PHP поддержки PHPQuery.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 /». Я попытался это, но она ничего не показывает:

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 guide, jquery 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>'; 
}