phpQuery шпоргалка

Запишу элементарные вещи по phpQuery, своего рода мини справка

ini_set(‘default_socket_timeout’, 120);
ini_set(‘max_execution_time’, ’0′);
//—целевой сайт
define(‘URL’, ‘целевой сайт’);

require(‘phpQuery/phpQuery/phpQuery.php’);
………………..
Взяли контент страницы начали ее перебор
…….

взять имя текущего тега
$tagName = $li->tagName;

взять текстовое содержимое элемента
$text= pq($element)->text();

взять содержимое элемента в виде html
$text= pq($element)->html();

взять атрибут
$text= pq($element)->attr(‘href’);

задали новое имя атрибута
$text= pq($element)->attr(‘href’, ‘newVal’);

берем коллекцию по определенному признаку
все дивы класса dsBodyBg расположенные внутри дива dsBodyContent

$elements = $results->find(‘div.dsBodyContent > div.dsBodyBg’);

выбрать родителя,подняться на уровень выше
$this->parent();

Тэги:

  • Не работает tagName в phpquery ?
  • Парсинг контента. Нет ничего проще (phpquery)
  • CP1252 в UTF-8, как преобразовать кодировку
  • QueryTemplates — шаблонизатор с использованием phpQuery
  • 8 комментариев на “phpQuery шпоргалка”

    1. Pilot:

      спасибо! отличная информация по phpquery

    2. S10:

      Вот интересно,
      $results->find(‘div > span’);
      одинаково по скорости работает с
      $results->find(‘html > body > div > span’); ?

    3. saintist:

      $results->find(‘html > body > div > span’); быстрее вероятно, но не факт )

    4. S10:

      strip_tags() с заветным параметром ускоряет парсинг в несколько раз ;)

    5. chtobynezabyt:

      > берем коллекцию по определенному признаку
      > все дивы класса dsBodyBg расположенные внутри дива dsBodyContent
      > $elements = $results->find(‘div.dsBodyBg > div.dsBodyContent’);

      а может наоборот?

      > берем коллекцию по определенному признаку
      > все дивы класса dsBodyContent расположенные внутри дива dsBodyBg
      > $elements = $results->find(‘div.dsBodyBg > div.dsBodyContent’);

      или так

      > берем коллекцию по определенному признаку
      > все дивы класса dsBodyBg расположенные внутри дива dsBodyContent
      > $elements = $results->find(‘div.dsBodyContent > div.dsBodyBg’);

    6. saintist:

      Поправил
      Благодарю что заметили неточность, часто пишешь заметку после того как плодотворно что-то перед этим делал и глаз часто замылин

    7. Cергей:

      Здравствуте.Вижу люди толковые подобрались.Как это работает? В какой файл записать?

    8. saintist:

      javascript основы почитай

    Оставить комментарий