コードをコピー コードは次のとおりです:
//リモート ファイルを判定
function check_remote_file_exists($url)
{
$curl =curl_init($url);
//データを取得しません
curl_setopt($curl, CURLOPT_NOBODY, true);
//リクエストを送信します
$result =curl_exec($) curl);
$found = false;
// リクエストが送信されずに失敗した場合
if ($result !== false) {
// http 応答コードが200
$statusCode =curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$found = true
}
}
curl_close($curl; );
return $found;
コードをコピー コードは次のとおりです:
//デフォルト効果
print_r(get_headers("http://www.baidu .com/img/baidu_sylogo1.gif"));
結果:
配列
(
[0] => HTTP/1.1 200 OK
[1] => 日付: 2011 年 6 月 2 日木 02:47:27 GMT
[2] => サーバー: Apache
[3] => P3P: CP=" OTI DSP COR IVA OUR IND COM "
[4 ] => Set-Cookie: BAIDUID=7F6A5A2ED03878A7791C89C526966F3A:FG = 12 年 6 月 1 日金曜日 02:47:27 GMT; ドメイン =/.baidu.com =1
[5] => 最終更新日: 木、20 1 月 2011 日 07:15:35 GMT
[6] => ETag: "65e-49a41e65933c0"
[7] => ; 受け入れ範囲: バイト
[8] = > コンテンツの長さ: 1630
[9] => キャッシュ制御: max-age=315360000
[10] => 、2021 年 5 月 30 日 02:47:27 GMT
[11] => 接続: 閉じる
[12] => Content-Type: image/gif
)
//パラメータ 1 を追加
print_r(get_headers("http://www.baidu.com/img/baidu_sylogo1.gif", 1));
結果:
配列
(
[0 ] => HTTP/1.1 200 OK
[日付] => 2011 年 6 月 2 日木 02:49:28 GMT
[サーバー] => " OTI DSP COR IVA OUR IND COM "
[Set -Cookie] => BAIDUID=4D875812FC482C0ADE4F5C17068849EE:FG=1; 期限切れ=金曜日、01-6月-12 02:49:28 GMT;パス=/; ドメイン=.baidu.com; バージョン=1
[Last-Modified] => 2011年1月20日木 07:15:35 GMT
[ETag] => "65e-49a41e65933c0"
[Accept-Ranges] => バイト
[Content-Length] => 1630
[Cache-Control] => max-age=315360000
[Expires] => 5 月 30 日 (日) 2021 02:49:28 GMT
[Connection] => 閉じる
[Content-Type] => image/gif
)
get_headers 関数はどうでしょうかはまだ良いですが、効率の問題があるのでそれを優先するしかありません、curl は良いです、curl がどのように行われるかを見てみましょう
コードをコピーします コードは次のとおりです。
function check_remote_file_exists ($url){
$curl =curl_init($url); /データを取得しない
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); //これを追加しないと、403 が返されます。追加すると、正しい 200 が返されます。理由は不明です。
//リクエストを送信します。
$found = false;送信されず失敗します
if ($result !== false)
{
// http 応答コードが 200 であるかどうかを再度確認します
$statusCode =curl_getinfo( $curl, CURLINFO_HTTP_CODE); >if ($statusCode == 200)
{
$found = true;
}
curl_close($curl);
return $found; 🎜>$exists = check_remote_file_exists('http://www.baidu.com/img/baidu_sylogo1.gif');
echo $exists : '存在しません'; ('http://www.baidu.com/test.jpg');
echo $exists : '存在しません';