ArtemSV
@ArtemSV
Пытаюсь выучить php/mysql/Yii2

File_get_contents тянет неправильные мета теги, как это исправить?

Стоит банальная задача: по url-у нужно вытянуть мета теги (title, description, keywords).

Есть сайт, к примеру: davidbowie.com

У него title:
<title>David Bowie - Nothing has changed.</title>

По при попытки пропарсить:
$url = 'http://davidbowie.com/';
 preg_match("/<title>(.+)<\/title>/siU", file_get_contents($url), $matches);
        if (array_key_exists('1', $matches)) {
            echo $title = $matches[1];
        }


но если пропарсить то получаем
<title>David Bowie | David Bowie&#039;s new album &quot;The Next Day&quot; featuring &quot;Where Are We Now?&quot; and &quot;The Stars (Are Out Tonight)&quot; available now.</title>


Как так получается?

И как сделать так, чтоб все корректно работало?
  • Вопрос задан
  • 216 просмотров
Решения вопроса 1
эмн... ну как бы там так и есть...

UPD:
title равный David Bowie - Nothing has changed. на странице, davidbowie.com/nhc, а вы обращаетесь к странице davidbowie.com, следовательно получаете именно то, что есть там

UPD2:
Можете почитать на досуге stream_context_create и его опциях, собственно тут всё в примерах
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fornit1917
@fornit1917
Примените к полученной строке html_entity_decode и будет вам счастье
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы