Posted at

cURL 関数の利用メモ

More than 3 years have passed since last update.

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;
}