PR

PHPで外部URLからtitleとmetaを取得する方法

スポンサーリンク

ヘッダ内のmetaはPHPに「get_meta_tags」という便利な関数があったので、以下のコードで簡単に取得可能。

$url = "http://example.com";
$meta = get_meta_tags($url);

上記だと、以下のように$metaにmetaタグの数だけ連想配列として格納される。

metaを連想配列として取得

 

次にタイトル(title)は、以下のようにcURLでページの情報を取得して、そこから正規表現で抜き出す方法をとる。(参考=OKWAVE

$url = "http://example.com";
$title = getPageTitle($url);

function getPageTitle($url){
    static $regex = '@<title>([^<]++)</title>@i';
    static $order = 'ASCII,JIS,UTF-8,CP51932,SJIS-win';
    static $ch;
    if(!$ch){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    $html = mb_convert_encoding(curl_exec($ch), 'UTF-8', $order);
    return preg_match($regex, $html, $m) ? $m[1] : '';
}

上記だと、$titleにタイトル文字列が変数として格納される。

 

コメント