PHP で 404 の URL をテストする簡単な方法は? 質問する

PHP で 404 の URL をテストする簡単な方法は? 質問する

基本的なスクレイピングを独学で学んでいるのですが、コードに入力した URL が 404 を返すことがあり、それがコードの残りの部分すべてを台無しにしてしまうことが分かりました。

したがって、URL が 404 を返すかどうかを確認するために、コードの先頭にテストが必要です。

これはかなり簡単な作業のように思えますが、Google は何も答えてくれません。間違ったものを検索しているのではないかと心配です。

あるブログではこれを使うことを勧めていました:

$valid = @fsockopen($url, 80, $errno, $errstr, 30);

次に、$valid が空かどうかをテストします。

しかし、問題が発生している URL にはリダイレクトがあるため、すべての値に対して $valid が空になります。あるいは、何か他の間違いをしているのかもしれません。

「ヘッド リクエスト」についても調べてみましたが、実際に試したり操作したりできるコード例はまだ見つかっていません。

提案はありますか?curl とは何ですか?

ベストアンサー1

PHPを使用している場合curlバインディング、エラーコードを確認するには、curl_getinfoそのような:

$handle = curl_init($url);
curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);

/* Get the HTML or whatever is linked in $url. */
$response = curl_exec($handle);

/* Check for 404 (file not found). */
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
    /* Handle 404 here. */
}

curl_close($handle);

/* Handle $response here. */

おすすめ記事