PHP -> Как спарсить заголовок страницы
Добрый вечер, уважаемые. Подскажите пожалуйста, как лучше всего присвоить переменной title html если известен ее адрес?
К примеру, есть адрес страницы: http://sitequest.ru/node/738
Заголовок страницы: "Новый проэкт"
Необходимо переменной $ttl присвоить значение "Новый проеект" (все что между <title></title>
)
Разделы форума
- Привлечение посетителей
- Интернет-магазины и корпоративные сайты
- Контент-проекты и сообщества
- Монетизация сайтов
- Реальные примеры, истории успеха
- Футурология и тренды
- Юридические и финансовые вопросы
- Тестирование сайтов, советы
- Технические вопросы
- Технические аспекты SEO
- Хостинг
- Реклама компаний и сервисов
- Объявления фрилансеров
- Работа, поиск исполнителей
- Сайты ищут рекламодателей
- Об этом сайте
ну делаете запрос чем-нибудь (например CURL-ом) и достаёте оттуда заголовок регулярным выражением
$ch = curl_init('http://sitequest.ru');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);
preg_match('|<title>([^\<]+)<|Uis', $html, $ttl);
$ttl = $ttl[1];
Спасибо огромное. Но сталкнулся с проблемой - заголовок этого форума получилось взять, а вот заголовок к примеру с яндекса уже нет.
Вот этой страницы не получается:
yandex.ru/yandsearch?text=php+%D1%86%D0%B8%D0%BA%D0%BB%D1%8B+for&text=46510&text=20243&lr=20243
Пусто почему то.
У меня получается. Ищите в чем конкретно проблема у Вас.
Может быть не приходят данные от курла - проверьте
echo $html;
Может быть не находится почему-то title - проверьте что возвращает preg_match (TRUE или FALSE) или существует ли $ttl[1].
Может быть у Вас некорректно работает preg_match в многострочном режиме (s) - у Яндекса видите title содержит переносы строк в начале и конце и, соответственно, это минимум три строки