リンクをカードにするプラグインを作ろう!(3)cURLでサイトの内容を取得する

PHP
この記事は約4分で読めます。

リンク先のタイトルと概要文を取得します。

前回まで

プラグインのひな型を作りました。

今回もコードを書いていく

URLパラメータを取得する

ショートコードが書かれたときに呼ばれるshortcodeにコードを書いていきます。

第一パラメータには指定されたパラメータが連想配列で入ってきます。

$url に urlパラメータで指定された文字列を入れてみましょう。

class popo_blogcard {
    function __construct() {
        add_shortcode('blogcard', array($this, 'shortcode' ) );
    }
    function shortcode($opt , $content = null ) {
        $url = $opt['url'];
    }
}
$popo_blogcard = new popo_blogcard;

cURLでアクセスする

cURLという機能を使ってリンク先のHTMLを取得します。

    function shortcode($opt , $content = null ) {
        $url = $opt['url'];
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
        curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
        curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
        curl_setopt($ch, CURLOPT_AUTOREFERER, true );
        curl_setopt($ch, CURLOPT_COOKIESESSION, true );
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
        $html = curl_exec($ch);
        curl_close($ch );
    }

cURLがエラーだったときの処理

エラーのときはタイトルも概要文も取得できないので、タイトルにURLを入れておきます。

    function shortcode($opt , $content = null ) {
        $url = $opt['url'];
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
        curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
        curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
        curl_setopt($ch, CURLOPT_AUTOREFERER, true );
        curl_setopt($ch, CURLOPT_COOKIESESSION, true );
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
        $html = curl_exec($ch);
        if (curl_errno($ch ) ) {
            $site_name = '';
            $title = $url;
            $excerpt = '';
        }
        curl_close($ch );
    }

これで$htmlにリンク先サイトのHTMLが取得できました。

ここからタイトルや概要文を抜粋します。

今回のコード

今回はここまでです。

次回は・・・

今回取得したHTMLからタイトルと概要文を抜粋します。

では、この辺で。(^-^)o

コメント

タイトルとURLをコピーしました