Я пытался повторить материал из видеоурока про phpQuery
, сверил весь код с точностью до запятой, но у меня отображается только пустая страница в итоге.
Код вроде бы совсем простой, ошибок не нахожу
<?php
header('Content-type: text/html; charset=utf-8');
require 'phpQuery.php';
$url='https://privatbank.ua/ru/';
$file=file_get_contents($url);
$doc = phpQuery::newDocument($file);
$tbl = $doc->find('#course-table-pb');
echo $tbl;
Не может ли такого быть, что я версию phpQuery
взял какую-нибудь не такую?
Проверяется по ходу: $file - непустое $doc - непустое $tbl - пусто
подытожу свои комментарии. Вы загружаете страницу по указанной ссылке. Когда вы ее открываете в браузере там выполняется множество JS-кода, который в частности подгружает курсы валют. И в результате вы видите страницу такой, какой видите.
Когда вы эту же страницу загружаете через file_get_contents()
вы получаете только исходный код страницы, JS скрипты никто не обрабатывает. Поэтому динамические данные не загружаются. Можете сохранить вывод file_get_contents
в файл (или просмотреть исходный код страницы в браузере) и там вы не найдете элемента #courses-table-pb
, который запрашиваете через phpQuery
.
В инструментах разработчика в браузере вы можете наблюдать, что курсы валют запрашиваются по ссылке https://currency.privatbank.ua/ru/get-currencies
Дальше действуйте из ваших интересов. Если ваша задача - изучить phpQuery
, то найдите другую страницу для практики. Если задача - получить курсы валют, то загрузите json-данные по ссылке выше, декодируйте их с помощью json_decode
и используйте по своему усмотрению, а phpQuery для данной задачи не нужен.
$content = file_get_contents("https://currency.privatbank.ua/ru/get-currencies/");
$content = substr($content, 1, strlen($content)-2);
$data = json_decode($content);
$data = json_decode($data->content);
print_r($data->exchange->currency_pb);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как разрешить доступ к PUT DELETE в RESTfull yii2 ? Использую angularjs
Доброго времени сутокВопрос следующий - как привести дату/время к определённому формату, а после "выдернуть" из него дату/время
Есть две переменные типа string: 1) задана вручную в php коде ($date1="14 июня"), 2) "содрана" при помощи cURL+phpQuery c удаленной страницы ($date2)