問題なく動作する単純な cURL スクリプトがあります。しかし、悪い URL を検出する方法に興味があります。また、「悪い」とは、存在しない URL を意味するか、呼び出しているサーバーが一定期間ダウンしている場合、または間違って間違った URL を入力した場合です。(ほんの一例)
これが私がこれまでに持っているものです:
<?php
$url = 'http://someurl_or_ip.com/some_file.php';
$post_fields = "type=whatever";
$post_fields .= "&first=".$first;
$post_fields .= "&last=".$last;
$ch = curl_init($url); // create a new cURL resource
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 1800);
// Execute the request.
$raw_response = curl_exec($ch);
$succeeded = curl_errno($ch) == 0 ? true : false;
echo $raw_response;
?>
通常、$raw_response は、ユーザーにデータを表示する方法など、他の目的で解析して使用できるものです。
$url を存在しないファイル (ただし、有効なドメイン) に置き換えただけで、「見つかりませんでした....要求された URL...このサーバーで見つかりませんでした...」というメッセージが表示されます。
これは、この apache サーバー メッセージを解析して、適切な URL ではないことを確認する必要があるということですか? または、ヘッダー情報を介してcURLにそれを検出する方法がありますか?