get_headers()是PHP中一個系統級函數,他可以返回一個包含有服務器響應一個HTTP請求所發送的標頭的數組。如果失敗則返回 FALSE 并發出一條 E_WARNING 級別的錯誤信息(可用來判斷遠程文件是否存在)。

PHPget_headers()函數,php判斷遠程圖片是否可以訪問,PHP判斷遠程網站是否可以訪問,php判斷訪問

PHP get_headers()函數的定義與語法

get_headers():可以通過服務器的響應頭來判斷遠程文件是否存在

語法:

array get_headers ( string $url [, int $format = 0 ] )

參數:

format 如果將可選的 format 參數設為 1,則 get_headers() 會解析相應的信息并設定數組的鍵名,如果設置默認為0

get_headers()舉例

PHP判斷一個網站是否可以訪問

例1:

<?php
var_dump( get_headers('http://xswdd.cn'));
?>

返回結果:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Server: Tengine
    [2] => Content-Type: text/html; charset=utf-8
    [3] => Connection: close
    [4] => Vary: Accept-Encoding
    [5] => Date: Wed, 15 May 2019 03:00:39 GMT
    [6] => Vary: Accept-Encoding
    [7] => X-Powered-By: PHP/7.2.11
    [8] => Product: Z-BlogPHP 1.5.2 Zero
    [9] => X-XSS-Protection: 1; mode=block
    [10] => Upgrade-Insecure-Requests: 1
    [11] => Ali-Swift-Global-Savetime: 1557889239
    [12] => Via: cache4.l2eu6-1[68,200-0,M], cache28.l2eu6-1[70,0], kunlun9.cn547[153,200-0,M], kunlun10.cn547[157,0]
    [13] => X-Cache: MISS TCP_MISS dirn:-2:-2
    [14] => X-Swift-SaveTime: Wed, 15 May 2019 03:00:39 GMT
    [15] => X-Swift-CacheTime: 0
    [16] => Timing-Allow-Origin: *
    [17] => EagleId: db939d1e15578892393137219e
)

注意:以上示例get_headers()函數沒有設置參數,所以返回的數組中鍵值都是默認的。

例2:

<?php
print_r( get_headers('http://xswdd.cn',1));
?>

返回結果:

Array
(
    [0] => HTTP/1.1 200 OK
    [Server] => Tengine
    [Content-Type] => text/html; charset=utf-8
    [Connection] => close
    [Vary] => Array
        (
            [0] => Accept-Encoding
            [1] => Accept-Encoding
        )
    [Date] => Wed, 15 May 2019 03:03:16 GMT
    [X-Powered-By] => PHP/7.2.11
    [Product] => Z-BlogPHP 1.5.2 Zero
    [X-XSS-Protection] => 1; mode=block
    [Upgrade-Insecure-Requests] => 1
    [Ali-Swift-Global-Savetime] => 1557889396
    [Via] => cache4.l2eu6-1[81,200-0,M], cache24.l2eu6-1[83,0], kunlun9.cn547[124,200-0,M], kunlun7.cn547[128,0]
    [X-Cache] => MISS TCP_MISS dirn:-2:-2
    [X-Swift-SaveTime] => Wed, 15 May 2019 03:03:16 GMT
    [X-Swift-CacheTime] => 0
    [Timing-Allow-Origin] => *
    [EagleId] => db939d1b15578893967421125e
)

国产视频appPS:本示例調用get_headers()函數時,設置了他的參數為1,返回的結果數組中,會解析相應的信息并設定數組的鍵名。

PHP判斷遠程圖片是否存在

通過以上的示例的返回結果,我們可以通過返回數組中的第一個值來判斷一個遠程的頁面或遠程的圖片是否可以訪問

代碼:

<?php
$arr = get_headers('http://xswdd.cn/zb_users/upload/Mochu_Feiniao/logo.png', 1);
if(!(stristr($arr[0], "200") && stristr($arr[0], "OK"))) {
    echo '圖片不存在';
}else{
    echo '圖片存在';
}
?>
執行結果:圖片存在

上面的示例是判斷一個遠程的圖片是否可以訪問,當然你也可以把圖片的地址換成網站的url地址,同樣可以做出判斷