《PHP實例:PHP使用get_headers函數判斷遠程文件是否存在的方法》要點:
本文介紹了PHP實例:PHP使用get_headers函數判斷遠程文件是否存在的方法,希望對您有用。如果有疑問,可以聯系我們。
PHP實戰本文實例講述了PHP使用get_headers函數判斷遠程文件是否存在的辦法.分享給大家供大家參考.具體實現辦法如下:
PHP實戰以前講過程關于php判斷遠程文件是否存在的文章都是利用fopen,sockt,curl函數來實現檢查遠程文件是否存在,下面我再介紹利用 get_headers來檢查遠程文件是否存在,感興趣的朋友可以參考一下.
PHP實戰先來簡單了解get_headers()函數
PHP實戰get_headers() 返回一個數組m包含有服務器響應一個 HTTP 哀求所發送的標頭.
PHP實戰get_headers:發送服務器響應HTTP哀求
PHP實戰get_headers(字符串url[鏈接格式])
PHP實戰get_headers()以數組的形式返回服務器HTTP哀求m如果執行失敗,將返回FALSE和一個錯誤的水平E_WARNING,
PHP實戰可選參數設置為1,get_headers()能分析系統的響應速度和集數組中的鍵,
PHP實戰注意:使用該函數需要把 php.ini里面的allow_url_fopen = On,才能使用
PHP實戰實例代碼如下:
代碼如下:
<?php
$url = '';
print_r(get_headers($url));
print_r(get_headers($url, 1));
?>
運行結果如下:
代碼如下:
Array
(
??? [0] => HTTP/1.1 200 OK
??? [1] => Cache-Control: max-age=1800
??? [2] => Content-Length: 54874
??? [3] => Content-Type: text/html
??? [4] => Content-Location:
??? [5] => Last-Modified: Fri, 28 Nov 2014 03:34:56 GMT
??? [6] => Accept-Ranges: bytes
??? [7] => ETag: "b66ba847bcad01:bc5"
??? [8] => Server: Microsoft-IIS/6.0
??? [9] => Date: Fri, 28 Nov 2014 03:37:34 GMT
??? [10] => Connection: close
)
Array
(
??? [0] => HTTP/1.1 200 OK
??? [Cache-Control] => max-age=1800
??? [Content-Length] => 54874
??? [Content-Type] => text/html
??? [Content-Location] =>
??? [Last-Modified] => Fri, 28 Nov 2014 03:34:56 GMT
??? [Accept-Ranges] => bytes
??? [ETag] => "b66ba847bcad01:bc5"
??? [Server] => Microsoft-IIS/6.0
??? [Date] => Fri, 28 Nov 2014 03:37:35 GMT
??? [Connection] => close
)
判斷遠程文件是否存在代碼如下:
代碼如下:
//判斷遠程文件是否存在??
function remote_file_exists($url) {??
??????? $executeTime = ini_get('max_execution_time');??
??????? ini_set('max_execution_time', 0);??
??????? $headers = @get_headers($url);??
??????? ini_set('max_execution_time', $executeTime);??
??????? if ($headers) {??
??????????? $head = explode(' ', $headers[0]);??
??????????? if ( !emptyempty($head[1]) && intval($head[1]) < 400) return true;??
??????? }??
??????? return false;??
}
排除重定向的實例代碼如下:
代碼如下:
<?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實戰希望本文所述對大家的PHP程序設計有所贊助.
維易PHP培訓學院每天發布《PHP實例:PHP使用get_headers函數判斷遠程文件是否存在的方法》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/13554.html