PHP利用get_headers()函数判断远程的url地址是否有效

更新日期: 2019-02-20阅读: 2.8k标签: url

问题:

利用url访问远程的文件、图片、视频时有时需要请求前判断url地址是否有效。


解决办法:

(php 5, PHP 7)

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头。

利用PHP自带的函数get_headers(),利用http返回值是否存在200状态,来判断url地址是否有效。

get_headers()函数官方介绍:http://php.net/manual/zh/function.get-headers.php


具体实现代码如下:

案例一:

$url = "https://www.baidu.com";
$response = get_headers($url);
echo "<pre>";
var_dump($response);
$response = get_headers($url,1);//如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。
echo ‘<pre>‘;
var_dump($response);

打印结果如下:

array(16) {
  [0]=>string(15) "HTTP/1.0 200 OK"
  [1]=>string(20) "Accept-Ranges: bytes"
  [2]=>string(23) "Cache-Control: no-cache"
  [3]=>string(21) "Content-Length: 14722"
  [4]=>string(23) "Content-Type: text/html"
  [5]=>string(35) "Date: Wed, 20 Feb 2019 13:12:31 GMT"
  [6]=>string(21) "Etag: "5c653bc8-3982""
  [7]=>string(44) "Last-Modified: Thu, 14 Feb 2019 09:58:32 GMT"
  [8]=>string(39) "P3p: CP=" OTI DSP COR IVA OUR IND COM ""
  [9]=>string(16) "Pragma: no-cache"
  [10]=>string(15) "Server: BWS/1.1"
  [11]=>string(141) "Set-Cookie: BAIDUID=72E4B8623F9E998C790B22F8E8D64BEC:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com"
  [12]=>string(137) "Set-Cookie: BIDUPSID=72E4B8623F9E998C790B22F8E8D64BEC; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com"
  [13]=>string(111) "Set-Cookie: PSTM=1550668351; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com"
  [14]=>string(21) "Vary: Accept-Encoding"
  [15]=>string(33) "X-Ua-Compatible: IE=Edge,chrome=1"
}

array(14) {
  [0]=>string(15) "HTTP/1.0 200 OK"
  ["Accept-Ranges"]=>string(5) "bytes"
  ["Cache-Control"]=>string(8) "no-cache"
  ["Content-Length"]=>string(5) "14722"
  ["Content-Type"]=>string(9) "text/html"
  ["Date"]=>string(29) "Wed, 20 Feb 2019 13:12:31 GMT"
  ["Etag"]=>string(15) ""5c653bc8-3982""
  ["Last-Modified"]=>string(29) "Thu, 14 Feb 2019 09:58:32 GMT"
  ["P3p"]=>string(34) "CP=" OTI DSP COR IVA OUR IND COM ""
  ["Pragma"]=>string(8) "no-cache"
  ["Server"]=>string(7) "BWS/1.1"
  ["Set-Cookie"]=>array(3) {
    [0]=>string(129) "BAIDUID=72E4B8623F9E998CF68FDDAD465EAF4A:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com"
    [1]=>string(125) "BIDUPSID=72E4B8623F9E998CF68FDDAD465EAF4A; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com"
    [2]=>string(99) "PSTM=1550668351; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com"
  }
  ["Vary"]=>string(15) "Accept-Encoding"
  ["X-Ua-Compatible"]=>string(16) "IE=Edge,chrome=1"
}


 案例二:

$url = "https://www.baidu.com";
$response = get_headers($url);
if(preg_match(‘/200/‘,$response[0])){ 
    echo "<pre/>"; 
    var_dump($response[0]); 
}else{ 
   var_dump("无效url资源!"); 
}

打印结果如下:

string(15) "HTTP/1.0 200 OK"



链接: https://fly63.com/article/detial/2079

静态网站如何获取Get参数,通过js获取url的参数数据的实现方式

不使用动态语言php,java等,直接通过js获取链接中传递的get数据的方法总结。javascript可以获取当前页面的url 只要对获取下来的url进行简单地解析即可。

短网址(short URL)系统的原理及其实现

做一个短链接生成器,可以将一个长链接缩短成一个短链接。就是把普通网址,转换成比较短的网址。好处不言而喻。短、字符少、美观、便于发布、传播。

从浏览器地址栏输入url到显示页面的步骤(以HTTP为例)

在浏览器地址栏输入URL,浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤,如果资源未缓存,发起新请求,如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证...

html 获取url地址_js获取当前页面的url网址信息汇总

在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结。window.location.href(设置或获取整个 URL 为字符串),window.location.protocol(设置或获取 URL 的协议部分)

html中绝对路径和相对路径的区别?比较相对路径和绝对路径的优缺点

相对路径就是相对于当前文件的路径;可以防止被抄袭,如果网页位置改变,里面的链接还是指向正确的URL。在编码编写时不方便使用绝对路径,因为链接应该指向真正的域名,而不是开发站点。

qs.js_更好的处理url参数

一次接触qs这个库,是在使用axios时,用于给post方法编码,在使用过程中,接触到了一些不同的用法,写在这里分享一下:qs.parse、qs.stringify、排序、指定数组编码格式、处理json格式的参数

短网址(short URL)的实现_如何生成短链接URL?

什么是短链接 ?就是把普通网址,转换成比较短的网址。好处不言而喻:短、字符少、美观、便于发布、传播。所以如何来优雅的生成足够短的字符串唯一ID呢?

window.URL对象的使用方式

window对象的URL对象是专门用来将blob或者file读取成一个url的。这个url可以用在html的任何可以使用url的地方,比如img的src ; audio/video的src和source标签等。

URL和URI的区别

URL的格式由下列三部分组成:协议(或称为服务方式);存有该资源的主机IP地址(有时也包括端口号);主机资源的具体地址,如目录和文件名等。URI,统一资源标识符:主机名。存放资源的自身的名称,由路径表示

Google 谈论杀死 URL 的第一步

“一个关键的挑战是避免将合法域名标记为可疑域名。” URL 是 Uniform Resource Locator(统一资源定位符)的缩写,用户无需记住复杂的 IP 地址而只需要记住域名就能访问一个网站。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!