@ZaurK

Как проверить наличие класса на странице с помощью phpquery?

Здравствуйте!
Имеется файл index.html который ссылается на три других файла one.html, two.html и three.html. Структура предельно простая. В файлах one и three имеется тег ul с классом list, а в файле two этого класса и тега нет.
Есть еще файл get.php, который парсит эти страницы и проверяет наличие класса .list, и выводится ответ есть этот класс или его нет. Вот код:

<?php

header('Content-type: text/html; charset=UTF-8');

$start = microtime(true);

set_include_path(get_include_path().PATH_SEPARATOR.'library/'); 
set_include_path(get_include_path().PATH_SEPARATOR.'phpQuery/'); 

require('config.php');

function __autoload( $className ) {require_once( "$className.php" );}

echo "<br>".date('H:i:s')." Начинаем парсинг ";
echo '<pre>';

$page=file_get_contents('index.html');
$document = phpQuery::newDocument($page);

$links=[];
foreach($document->find('ul li a') as $link){

$links[] = pq($link)->attr('href');
}
print_r($links);

foreach($links as $sublink){
$pageText =new Curl();
$pagenew=$pageText->get_page($sublink);
$cat_page = phpQuery::newDocument($pagenew);
$catlist = [];

foreach($cat_page as $cat_page){
if($item=pq($cat_page)->find('ul.list a')) {
    echo "class is</br>";}else{
    echo "class not is</br>";}
}


Проблема в том, что в итоге выводится, что класс есть на всех трех страницах, хотя на второй странице его нет. Помогите пожалуйста понять, что не правильно тут? вот что выводится:

11:07:22 Начинаем парсинг
Array
(
[0] => one.html
[1] => two.html
[2] => three.html
)
class is
class is
class is
  • Вопрос задан
  • 694 просмотра
Пригласить эксперта
Ответы на вопрос 1
@springimport
Во-первых, код - говно, извините.
Во-вторых, конструкция "class is" неадекватна.
В-третьих, вы ищите все что угодно, а не класс: find('ul.list a').
В-четвертых, посмотрите на Apist.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы