Понадобилось мне тут для одного проекта получать заголовок (title) и описание (description) удаленной страницы с помощью php. То есть на всходе у нас есть только адрес url страницы, а на выходе — его заголовок и описание. Как всегда, чтоб не изобретать велосипед вначале решил погуглить на предмет существующих решений. Решений оказалось много, но как обычно не все продуманы до конца. Дело в том, что сайт может быть в разной кодировке, а мне нужно было его вывести в utf-8. В общем было написано 2 функции:
1. Получение заголовка
function action_getTitle($url){ $page = @file_get_contents($url); $title = preg_match("|<title>([^<]+)</title>|is", $page, $matches) ? $matches[1] : ''; if (mb_check_encoding($title, 'Windows-1251') && !mb_check_encoding($title, 'UTF-8')){ $title = iconv("CP1251//IGNORE", "UTF-8", $title); } $result['title'] = $title; echo json_encode($result); exit; }
Функция отдает результат в формате json, так как мне это нужно для работы с ajax. Кому не нужно — переделайте под себя.
2. Функция получения описания
function action_getDesc($url ){ $page = @file_get_contents($url); $desc = preg_match("|<meta name=\"description\" content=\"([^<]+)\" />|is", $page, $matches) ? $matches[1] : ''; if (mb_check_encoding($desc, 'Windows-1251') && !mb_check_encoding($desc, 'UTF-8')){ $title = iconv("CP1251//IGNORE", "UTF-8", $desc); } $result['desc'] = $desc; echo json_encode($result); exit; }
Так же возвращает результат в формате json, работает при условии, что на странице прописан метатег description.
Вот такие 2 простенькие функции на php, с помощью которых можно получить заголовок и описание сайта.