使用php get_headers 判斷URL是否有效的解決辦法
在php中判斷一個(gè)文件或目錄是否存在,大家通常都會(huì)想到is_file和file_exists兩個(gè)函數(shù)。但這兩個(gè)函數(shù)再判斷一個(gè)遠(yuǎn)程url文件是否存在的問(wèn)題上還是會(huì)存在這樣那樣的問(wèn)題。這里作者將和大家分享一種利用php get_headers函數(shù)來(lái)判斷遠(yuǎn)程url文件是有效否存在的辦法。
關(guān)于php get_headers函數(shù)的作用及用法,可以參考本站文章:
php中g(shù)et_headers函數(shù)的作用及用法的詳細(xì)介紹
下面來(lái)具體說(shuō)如何利用php get_headers卻判斷url的真實(shí)有效性。
通過(guò)該函數(shù)的介紹,我們可以知道對(duì)于這個(gè)函數(shù)簡(jiǎn)單的說(shuō)就是它返回的是一個(gè)HTTP請(qǐng)求的頭文件信息,信息格式基本如下:
(1)
Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Sat, 29 May 2004 12:28:13 GMT
[2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
[4] => ETag: "3f80f-1b6-3e1cb03b"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 438
[7] => Connection: close
[8] => Content-Type: text/html
)
(2)
Array
(
[0] => HTTP/1.0 404 Not Found
[1] => Date: Sat, 29 May 2004 12:28:13 GMT
[2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
[4] => ETag: "3f80f-1b6-3e1cb03b"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 438
[7] => Connection: close
[8] => Content-Type: text/html
)
從以上兩種情況可以很容易看出,如果判斷該url是否有效存在肯定是通過(guò)數(shù)組中的第一個(gè)元素值來(lái)判斷的。服務(wù)器返回 200 即文件正確返回的意思,服務(wù)器返回 404 即文件不存在,因此從這個(gè)地方就可以很容易的判斷一個(gè)url的是否存在了。
(詳細(xì)出處:PHP程序員筆記)
- PHP使用get_headers函數(shù)判斷遠(yuǎn)程文件是否存在的方法
- PHP判斷是否有Get參數(shù)的方法
- php提交表單時(shí)判斷 if($_POST[submit])與 if(isset($_POST[submit])) 的區(qū)別
- php判斷是否為ajax請(qǐng)求的方法
- php中如何判斷一個(gè)網(wǎng)頁(yè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求
- PHP中如何判斷AJAX提交的數(shù)據(jù)
- 在php中判斷一個(gè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求的方法
- PHP簡(jiǎn)單獲取及判斷提交來(lái)源的方法
- php不允許用戶提交空表單(php空值判斷)
- PHP自定義函數(shù)判斷是否為Get、Post及Ajax提交的方法
相關(guān)文章
PHP實(shí)現(xiàn)Huffman編碼/解碼的示例代碼
本篇文章主要介紹了PHP實(shí)現(xiàn)Huffman編碼/解碼的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Yii2框架實(shí)現(xiàn)登陸添加驗(yàn)證碼功能示例
這篇文章主要介紹了Yii2框架實(shí)現(xiàn)登陸添加驗(yàn)證碼功能,結(jié)合實(shí)例形式分析了Yii2框架登陸添加驗(yàn)證碼相關(guān)的設(shè)置、控制器及視圖操作技巧,需要的朋友可以參考下2018-07-07PHP實(shí)現(xiàn)的微信APP支付功能示例【基于TP5框架】
這篇文章主要介紹了PHP實(shí)現(xiàn)的微信APP支付功能,結(jié)合實(shí)例形式分析了基于TP5框架的微信APP支付相關(guān)原理、操作步驟與處理技巧,需要的朋友可以參考下2019-09-09PHP迭代器的內(nèi)部執(zhí)行過(guò)程詳解
下面我們來(lái)了解如何實(shí)現(xiàn)一個(gè)自定義的迭代器,然后再開(kāi)始慢慢理解迭代器的內(nèi)部工作原理。先來(lái)看一個(gè)官方的例子2013-11-11Laravel4中的Validator驗(yàn)證擴(kuò)展用法詳解
這篇文章主要介紹了Laravel4中的Validator驗(yàn)證擴(kuò)展用法,實(shí)例分析了Laravel4中的Validator驗(yàn)證器的具體實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-07-07Zend Framework實(shí)現(xiàn)自定義過(guò)濾器的方法
這篇文章主要介紹了Zend Framework實(shí)現(xiàn)自定義過(guò)濾器的方法,結(jié)合實(shí)例形式分析了Zend Framework自定義過(guò)濾器的簡(jiǎn)單定義與使用方法,需要的朋友可以參考下2016-12-12