Не пойму почему не работает спарсенный код?

183
13 февраля 2018, 08:57

Получаю содержимое тега head при помощи кода

`<?
$html = file_get_html('http://softobase.com/ru/');
foreach ($html->find("head") as $elements) {
    $head = $elements;
}
echo $head;
?>`

полученный при помощи этого код не отображает некоторые элементы, но если скопироваь вручную содержимое тега head с сайта который я парсю и вставить в мой сайт то все работает. Почему так происходит? Я проверял, получаемый код при помощи парсера абсолютно идентичен исходному кода сайта который парсю.

Answer 1

Вы переопределяете переменную в цикле, а выводите ее только после цикла. Сделайте вывод в цикле:

<?
$html = file_get_html('http://softobase.com/ru/');
foreach ($html->find("head") as $elements) {
    $head = $elements;
    echo $head;
}
?>
Answer 2

Замените штатную функцию file_get_html() на пхпшную file_get_contents():

$content = file_get_contents('http://softobase.com/ru/');
$html = str_get_html($content);
foreach ($html->find('head') as $head) {}
echo $head;

По сути, для тега head и цикл не требуется (как видите, вывод прописан за пределами цикла), поэтому можно просто массив преобразовать в строку с помощью join():

echo join($html->find('head'));
READ ALSO
обработка результата запроса

обработка результата запроса

Через Curl нужно получить весь запросТо есть аккуратный массив/объект со всеми именами-значениями заголовков и отдельно тело

167
Как передать массив по ссылке? PHP

Как передать массив по ссылке? PHP

Подскажите, пожалуйста как передать массив php по ссылке? Итак, есть массив:

161
Продлить акцию на неделю, программно

Продлить акцию на неделю, программно

Подскажите как сделать на php, продление акции на неделю программноесть код:

144
Получение данных из MySQL

Получение данных из MySQL

ЗдравствуйтеИмеется таблица table со столбиками id name model price warranty, и имеется массив, допустим $ids (в котором находятся определенные id с таблицы...

245