Знания php у меня сырые, решил потренироваться с парсингом данных с сайта с помощью phpQuery остановился в самом начале и уже довольно продолжительное время перебираю варианты.
При запуске foreach возникает ошибка:
Warning: Invalid argument supplied for foreach() in /parser.php on line 13
про нее читал, но проблему решить не помогло. подскажите что дописать нужно, что не так делаю?
<?php
header('Content-type: text/html; charset=utf-8');
require 'phpQuery.php';
$url='http://ria56.ru/posts/news/';
$file= file_get_contents($url);
$doc = phpQuery::newDocument($file);
$rianews=$doc->find('.text_posts');//извлекаем только новостные посты
$links = $doc->find('.text_posts .name a')->attr('href');
foreach ($doc->find('.name a')->attr('href') as $link){
echo $link.'<br>';
}
сама библиотека подлючена, так как ссылка извлеклась с помощью
$links = $doc->find('.text_posts .name a')->attr('href');
Вам нужно перебирать ссылки из списка найденных, а потом брать их атрибуты. Правильный вариант будет примерно таким:
foreach ($doc->find('.name a') as $link){
echo $link->attr('href') . '<br>';
}
решил проблему, оказалось что $link
являлся объектом DOMElement, а нам нужен phpQueryObject для этого нужно было сделать следующее
foreach ($doc->find('.name a') as $link){
$link = pq($link);
echo $link->attr('href') . '<br>';
}
после преобразований во второй строке с переменной $link
можно работать как с объектом jquery и уже писать что то вроде: $link->attr('href')
Вывод: надо было подробнее читать документацию. https://code.google.com/archive/p/phpquery/wikis/Basics.wiki
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени суток! Есть три таблицы (house, apartment, land_parts)На сайте есть поиск (расширенный поиск так сказать)
Есть ли для php библиотека для работы с почтой Exchange? Нужно уметь читать письма, получать вложения, удаление писем - это основноеВозможность...
Есть система написанная на laravel52 запущенная на сервере с ubuntu(16
ЗдравствуйтеКак мне найти в тексте все хештеги и заменить их на ссылки? Допустим: Я #люблю плюшки заменить на Я <a href="search