1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

cURL 関数の利用メモ

Posted at

PHP の cURL 関数を使って、URLを検証する。

###利用シーン
外部のサイトにリダイレクトする前、遷移先のURLが問題なくアクセスできるかを確認する。
問題あれば、リダイレクトせず内部のエラーページに遷移することによって、UXを向上することを目指す。

####例
curl_setoptで、cURL 転送用オプションを設定する。 


 function CheckUrl($url) {

   //cURL セッションを初期化する
      $ch = curl_init($url);


      // TRUE を設定すると、curl_exec() の返り値を文字列で返す。
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  

      // FALSE を設定すると、cURL はサーバー証明書の検証を行いません。
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

      //cURL 関数の実行にかけられる時間の最大値。
      curl_setopt($ch, CURLOPT_TIMEOUT, 15); 

      //接続先がUser-Agentが必要な場合、HTTP リクエストで使用される User-Agentを指定しないと、
   //500エラーが帰ってくるので、ダミー値を入れて確認する方法もある。
      curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) xxxxxxxx xxxxxxxxxxx');

      //TRUE を設定すると、HTTP で 400 以上のコードが返ってきた際に 処理失敗と判断します。
      curl_setopt($ch, CURLOPT_FAILONERROR, true); 


      // URL を取得し、ブラウザに渡します
      curl_exec($ch);

      //接続問題なければ curlErrorNoが0を返す
      $curlErrorNo = curl_errno($ch);

      // cURL リソースを閉じ、システムリソースを解放します
      curl_close($ch);


      if($curlErrorNo != 0){
          return false;
      }
      return $url;
  }

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?