Добрый день!
Друзья, экспериментирую парсингом. Очень интересно.
Создал файл parser.php, в котором есть такой вот код:
<?php
$url = 'https://www.yandex.ru';
$file = file_get_contents($url);
$pattern = '#
- #s';
preg_match($pattern, $file, $matches);
print_r($matches);
?>
Запарсил новости с Яндекса.
Результаты в скриншоте.
Друзья, помогите, пожалуйста, в разрешении двух вопросов:
1) Хотел бы вывести эти новости в верхний блок на сайте. Пробовал не получается.
Как выполнить php функции в html-блоке?
2) Стилистика выведенных результатов - например, как убрать слово Array ( [0] => ?
Гуглил - не нашел.
Почему-то код некорректно отображается. Выложу скриншот.
Вложение | Размер |
---|---|
rezultat_raboty_parser.png | 13.23 КБ |
sam_kod_parsinga.png | 4.8 КБ |
Комментарии
Функция print_r отладочная. Не нужно пытаться стилизовать её вывод и уж тем более показывать пользователям.
благодарю за комментарий, как можно исправить?
Используйте print или echo. Оберните вывод в нужные вам тэги. Переменная у вас - массив из одного элемента, поэтому можно так
<?php
print $matches[0];
?>
Новостной блок в Яндексе начинается как ol class="list news__list"
подключил библиотеку phpQuery.
Теперь пытаюсь вот так вот вывести:
<?php
require_once 'phpQuery/phpQuery/phpQuery.php';
$url = 'https://yandex.ru';
$file = file_get_contents($url);
$doc = phpQuery::newDocument($file);
$tr = $doc->find('#list news__list');
echo $tr;
?>
И опять не выводится.
Посмотрите через devel -> dsm что в данных, а потом уже выводите и не помешали бы проверки для свойств индексов перед echo или reset уж на худой конец
тут бы для начала связать все это с друпалом как-то, файл parser.php
А потом про dsm думать и devel