ホームページ > バックエンド開発 > PHPチュートリアル > PHP はリモート データが存在するかどうかを検出します

PHP はリモート データが存在するかどうかを検出します

WBOY
リリース: 2016-06-13 13:08:07
オリジナル
900 人が閲覧しました

PHP はリモート ファイルが存在するかどうかを検出します

<?php
$url = 'http://example.com';
$hander_array = get_headers ( $url );
if ($header_array [0] == 'HTTP/1.1 200 OK') {
	echo '文件存在';
} else {
	echo '文件不存在';
} 
ログイン後にコピー

上記のコードを簡単に説明してください。 get_headers の機能は、リモート アドレスにアクセスし、サーバーから送信された HTTP ヘッダーを配列の形式で返すことです。 $header[0] はサーバーから返されるステータス コードです (他に何も起こらなければ、ステータス コードが最初に返されるはずです)。

ファイルがリモート サーバーに存在することを確認するには、ファイルにアクセスして返されたステータス コードが「HTTP/1.1 200」であることを確認してください。 OK」で十分です(もちろんステータスコードが「HTTP/1.1 404 Not」でないかどうかで判断することもできます) Found" の場合、ファイルは存在しますが、301、400 などの他のステータス コードがあるため、常に安全ではないと感じます。

<span class="html"><span class="keyword">获取三位HTTP响应码的例子:</span> </span>

<?php
function get_http_response_code($theURL) {
    $headers = get_headers($theURL);
    return substr($headers[0], 9, 3);
}
?> 
ログイン後にコピー

?除外リダイレクトの例:

<?php
/**
 * Fetches all the real headers sent by the server in response to a HTTP request without redirects
 * 获取不包含重定向的报头
 */
 
function get_real_headers($url,$format=0,$follow_redirect=0) {
  if (!$follow_redirect) {
    //set new default options
    $opts = array('http' =>
        array('max_redirects'=>1,'ignore_errors'=>1)
    );
    stream_context_get_default($opts);
  }
  //get headers
    $headers=get_headers($url,$format);
    //restore default options
  if (isset($opts)) {
    $opts = array('http' =>
        array('max_redirects'=>20,'ignore_errors'=>0)
    );
    stream_context_get_default($opts);
  }
  //return
    return $headers;
}
?> 
ログイン後にコピー
?
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート