Я добываю данные с сайта, но там это paginator, но мне нужно получить все страницы. Ссылка на следующую страницу написана в теге link с rel = next. Если страниц больше нет, тег ссылки отсутствует. Я создал функцию, называемую getAll, которая должна вызывать self снова и снова, пока не появится тег ссылки.Указатели PHP - данные не получены
function getAll($url, &$links) {
$dom = file_get_html ($url); // create dom object from $url
$tmp = $dom->find('link[rel=next]', 0); // find link rel=next
if(is_object($tmp)){ // is there the link tag?
$link = $tmp->getAttribute('href'); // get url of next page - href attribute
$links[] = $link; // insert url into array
getAll($link, $links); // call self
}else{
return $links; // there are no more urls, return the array
}
}
// usage
$links = array();
getAll('http://www.zbozi.cz/vyrobek/apple-iphone-5/', $links);
print_r($links); // dump the links
Но у меня есть проблема, когда я запускаю сценарий сообщения «не получили данных» появляется в Chrome. Я не имею ни малейшего представления об ошибке или что-то в этом роде. Функция должна работать, потому что, когда я не использую ее снова, она возвращает одну ссылку - на вторую страницу.
Я думаю, что проблема заключается в неправильном использовании синтаксиса или плохой указатель.
Не могли бы Вы помочь мне?
Ваша функция 'getAll', вы звоните' getLinks' внутри и на начальном этапе. –
Извините, я переименовал его, когда писал. Ред. Проблема не в этом. – Northys