php获取网页header信息的4种方法

简介: php获取网页header信息的方法多种多样,就php语言来说,我知道的方法有4种, 下面逐一献上。 方法一:使用get_headers()函数 推荐指数: get_header方法最简单只要两行代码即可搞定。

php获取网页header信息的方法多种多样,就php语言来说,我知道的方法有4种, 下面逐一献上。

方法一:使用get_headers()函数

推荐指数:

get_header方法最简单只要两行代码即可搞定。如下:

  1. $thisurl = "http://www.lao8.org/";
  2. print_r(get_headers($thisurl, 1));

得到的结果为:

  1. Array
  2. (
  3.     [0] => HTTP/1.1 200 OK
  4.     [Cache-Control] => max-age=86400
  5.     [Content-Length] => 76102
  6.     [Content-Type] => text/html
  7.     [Content-Location] => http://www.lao8.org/index.html
  8.     [Last-Modified] => Fri, 19 Jul 2013 03:52:30 GMT
  9.     [Accept-Ranges] => bytes
  10.     [ETag] => "50bc48643384ce1:5cb3"
  11.     [Server] => Microsoft-IIS/6.0
  12.     [X-Powered-By] => ASP.NET
  13.     [Date] => Fri, 19 Jul 2013 09:06:39 GMT
  14.     [Connection] => close
  15. )

方法二:使用http_response_header

推荐指数:

http_response_headerf方法也很简单,仅三行:

  1. $thisurl = "http://www.lao8.org";
  2. $html = file_get_contents($thisurl ); 
  3. print_r($http_response_header);

得到的结果为:

  1. Array
  2. (
  3.     [0] => HTTP/1.1 200 OK
  4.     [1] => Cache-Control: max-age=86400
  5.     [2] => Content-Length: 76102
  6.     [3] => Content-Type: text/html
  7.     [4] => Content-Location: http://www.lao8.org/index.html
  8.     [5] => Last-Modified: Fri, 19 Jul 2013 03:52:30 GMT
  9.     [6] => Accept-Ranges: bytes
  10.     [7] => ETag: "50bc48643384ce1:5cb3"
  11.     [8] => Server: Microsoft-IIS/6.0
  12.     [9] => X-Powered-By: ASP.NET
  13.     [10] => Date: Fri, 19 Jul 2013 09:06:41 GMT
  14.     [11] => Connection: close
  15. )

方法三:使用stream_get_meta_data()函数

推荐指数:

使用stream_get_meta_data()代码也只需三行:

  1. $thisurl = "http://www.lao8.org/";
  2. $fp = fopen($thisurl, 'r'); 
  3. print_r(stream_get_meta_data($fp));

得到的结果为:

  1. Array
  2. (
  3.     [wrapper_data] => Array
  4.         (
  5.             [0] => HTTP/1.1 200 OK
  6.             [1] => Cache-Control: max-age=86400
  7.             [2] => Content-Length: 76102
  8.             [3] => Content-Type: text/html
  9.             [4] => Content-Location: http://www.lao8.org/index.html
  10.             [5] => Last-Modified: Fri, 19 Jul 2013 03:52:30 GMT
  11.             [6] => Accept-Ranges: bytes
  12.             [7] => ETag: "50bc48643384ce1:5cb3"
  13.             [8] => Server: Microsoft-IIS/6.0
  14.             [9] => X-Powered-By: ASP.NET
  15.             [10] => Date: Fri, 19 Jul 2013 09:06:41 GMT
  16.             [11] => Connection: close
  17.         )
  18.     [wrapper_type] => http
  19.     [stream_type] => tcp_socket
  20.     [mode] => r+
  21.     [unread_bytes] => 1086
  22.     [seekable] => 
  23.     [uri] => http://www.lao8.org/
  24.     [timed_out] => 
  25.     [blocked] => 1
  26.     [eof] => 
  27. )

第四种方法: 使用php的高级函数 CURL()来获取

推荐指数:

上面的三种方法能获取一般的网页header信息,如果想要获取更详细的header信息比如网页是否启用了GZip压缩。这时候可以用php的高级函数curl()来获取。

使用curl获得header可以检测GZip压缩
先贴出代码:

  1. <?php
  2. $szUrl = 'http://www.lao8.org/';
  3. $curl = curl_init();
  4. curl_setopt($curl, CURLOPT_URL, $szUrl);
  5. curl_setopt($curl, CURLOPT_HEADER, 1);  //输出header信息
  6. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  //不显示网页内容
  7. curl_setopt($curl, CURLOPT_ENCODING, ''); //允许执行gzip
  8. $data=curl_exec($curl); 
  9. if(!curl_errno($curl))
  10. {
  11.     $info = curl_getinfo($curl);
  12.     $httpHeaderSize = $info['header_size'];  //header字符串体积
  13.     $pHeader = substr($data, 0, $httpHeaderSize); //获得header字符串
  14.     $split   = array("rn", "n", "r");  //需要格式化header字符串
  15.     $pHeader = str_replace($split, '<br>', $pHeader); //使用<br>换行符格式化输出到网页上
  16.     echo $pHeader;
  17. }
  18. ?>

输出结果如下:

 

  1. HTTP/1.1 200 OK
  2. Cache-Control: max-age=86400
  3. Content-Length: 15189
  4. Content-Type: text/html
  5. Content-Encoding: gzip
  6. Content-Location: http://www.lao8.org/index.html
  7. Last-Modified: Fri, 19 Jul 2013 03:52:28 GMT
  8. Accept-Ranges: bytes
  9. ETag: "0268633384ce1:5cb3"
  10. Vary: Accept-Encoding
  11. Server: Microsoft-IIS/6.0
  12. X-Powered-By: ASP.NET
  13. Date: Fri, 19 Jul 2013 09:27:21 GMT

 

可以看到使用curl获取到的header信息多了这行:Content-Encoding: gzip,网页启用了GZip压缩。

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
目录
相关文章
|
4月前
|
存储 PHP 开发者
深入浅出PHP:构建你的首个动态网页
【9月更文挑战第24天】在数字时代的今天,掌握编程技能不再是专业技术人员的专利。PHP作为一种流行的服务端脚本语言,因其易学性和灵活性而广受欢迎。本文将引导您从零开始,通过一个简单实例—创建个人博客页面,逐步深入PHP的世界。我们将一起探索变量、循环和函数等基本概念,并最终将这些元素融合到实际的代码中。不论你是编程新手还是希望扩展知识的开发者,这篇文章都将为你提供一次愉快的学习旅程。
53 0
|
2月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
68 4
|
2月前
|
JSON PHP 数据格式
PHP解析配置文件的常用方法
INI文件是最常见的配置文件格式之一。
56 12
|
4月前
|
Java PHP 数据安全/隐私保护
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
本文详细介绍了PHP面向对象编程的一系列核心概念和用法,包括构造函数、析构函数、继承、方法重写、访问控制、接口、抽象类、静态成员、final关键字、以及this、self、parent这三个关键字的异同和作用。通过具体示例代码,展示了如何在PHP中使用这些面向对象的特性,以及它们在实际开发中的应用。
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
|
4月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
2月前
|
自然语言处理 关系型数据库 MySQL
PHP编程入门:构建你的第一个网页应用
【10月更文挑战第29天】本文旨在引导初学者步入PHP编程的世界,通过深入浅出的方式介绍PHP的基础知识,并指导读者如何动手实践,搭建一个简单的网页应用。文章不仅涉及PHP代码的编写,还包括了环境配置、项目结构设计以及前后端交互的基本概念。适合对Web开发感兴趣且希望快速入门的朋友阅读。
53 0
|
4月前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入探索与实践在软件开发的广袤天地中,PHP以其独特的魅力和强大的功能,成为无数开发者手中的得力工具。而在这条充满挑战与机遇的征途上,设计模式犹如一盏明灯,指引着我们穿越代码的迷雾,编写出更加高效、灵活且易于维护的程序。今天,就让我们聚焦于设计模式中的璀璨明珠——策略模式,深入探讨其在PHP中的实现方法及其实际应用价值。
策略模式,这一设计模式的核心在于它为软件设计带来了一种全新的视角和方法。它允许我们在运行时根据不同情况选择最适合的解决方案,从而极大地提高了程序的灵活性和可扩展性。在PHP这门广泛应用的编程语言中,策略模式同样大放异彩,为开发者们提供了丰富的创作空间。本文将从策略模式的基本概念入手,逐步深入到PHP中的实现细节,并通过一个具体的实例来展示其在实际项目中的应用效果。我们还将探讨策略模式的优势以及在实际应用中可能遇到的挑战和解决方案,为PHP开发者提供一份宝贵的参考。
|
4月前
|
PHP UED 开发者
PHP中处理异常的现代方法
【9月更文挑战第26天】在PHP的世界里,异常处理是代码健壮性的守护神。本文将深入浅出地探讨如何在PHP项目中优雅地处理异常,从而避免程序崩溃并提升用户体验。
|
4月前
|
IDE 安全 网络安全
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
246 4
|
4月前
|
存储 关系型数据库 PHP
深入浅出PHP:构建动态网页的基石
在数字时代的浪潮中,PHP作为一门强大的服务器端脚本语言,为无数网站的建设和开发提供了动力。本文将通过浅显易懂的方式,引导初学者理解PHP的核心概念,掌握基础语法,并介绍如何利用PHP进行数据库交互和处理表单数据,最终实现一个简单动态网页的搭建。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将为你开启PHP世界的大门。