Получение заголовка и описания удаленной страницы

Понадобилось мне тут для одного проекта получать заголовок (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, с помощью которых можно получить заголовок и описание сайта.

This entry was posted in Php and tagged , , , . Bookmark the permalink.

Добавить комментарий

Ваш адрес email не будет опубликован.

*