【php】URL を指定して伝送に関するデータを取得する②

かしこ 22views 更新:2016年9月9日

昨日作成したものに機能追加。

httpコードを取得して、ページが存在するかどうかを確認する処理を入れてみた。

何かに使えるかなぁ、と

※確認:php 7

(2016/12/26:タイトルを修正, 配列の宣言を array() → [] へ修正)

<?php
class curl_lib
{
    const HTTP_CODE_MOVED_PERMANENTLY = 301 ;
    const HTTP_CODE_NOT_FOUND         = 404 ;
    /**
     * URL を指定して伝送に関するデータを取得する
     * @param String $in_url : 取得したい URL
     * @return array $curl_data : 取得データ / 取得失敗時は false
     */
    public function func_curl($in_url)
    {
        $ch        = curl_init($in_url) ;
        curl_setopt_array($ch,
                  [
                      CURLOPT_HEADER         => true
                    , CURLOPT_RETURNTRANSFER => true
                  ]
        ) ;
        $res       = curl_exec($ch) ;
        $curl_data = curl_getinfo($ch) ;
        curl_close($ch) ;
        return $curl_data ;
    }
    /**
     * 指定した URL 先が存在するか調べる
     * 接続できない場合も NG なる
     * @see $this->func_curl
     * @param String $check_url : チェックする URL
     * @return boolean : チェック結果 : true = OK / false = NG
     */
    public function check_http_code($check_url)
    {
        $res = $this->func_curl($check_url) ;
        if($res !== false
            && isset($res['http_code'])
            && $res['http_code'] != 0
            && $res['http_code'] != self::HTTP_CODE_MOVED_PERMANENTLY
            && $res['http_code'] != self::HTTP_CODE_NOT_FOUND) {
            return true ;
        }
        return false ;
    }
}

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません