php4如何获取远程文件大小类,模拟get_headers函数

作者: 贝博体育app网络  发布:2019-09-26

 /*
 
 */

复制代码 代码如下:

 代码如下

<?php 

if(!function_exists('get_headers'))
{
    function get_headers($url,$format=0)
    {
        $url=parse_url($url);
        $end = " ";
        $fp = fsockopen($url['host'], (empty($url['port'])?80:$url['port']), $errno, $errstr, 30);
        if ($fp)
        {
            $out  = "get / http/1.1 ";
            $out .= "host: ".$url['host']." ";
            $out .= "connection: close ";
            $var  = '';
            fwrite($fp, $out);
            while (!feof($fp))
            {
                $var.=fgets($fp, 1280);
                if(strpos($var,$end))
                    break;
            }
            fclose($fp);

02 if(!function_exists('get_headers')){ 

            $var=preg_replace("/ .*$/",'',$var);
            $var=explode(" ",$var);
            if($format)
            {
                foreach($var as $i)
                {
                    if(preg_match('/^([a-za-z -]+): +(.*)$/',$i,$parts))
                        $v[$parts[1]]=$parts[2];
                }
                return $v;
            }
            else
                return $var;
        }
    }
}

03     function get_headers($url,$format=0){ 

04         $url=parse_url($url); 

05         $end="rnrn"; 

06         $fp=fsockopen($url['host'],(empty($url['port'])?80:$url['port']),$errno,$errstr,30); 

07         if($fp){ 

08             $out="GET / HTTP/1.1rn"; 

09             $out.="Host: ".$url['host']."rn"; 

10             $out.="Connection: Closernrn"; 

11             $var=''; 

12             fwrite($fp,$out); 

13             while(!feof($fp)){ 

14                 $var.=fgets($fp,1280); 

15                 if(strpos($var,$end)) 

16                 break; 

17             } 

18             fclose($fp); 

19             $var=preg_replace("/rnrn.*$/",'',$var); 

20             $var=explode("rn",$var); 

21             if($format){ 

22                 foreach($var as $i){ 

23                     if(preg_match('/^([a-zA-Z -]+): +(.*)$/',$i,$parts)) 

24                     $v[$parts[1]]=$parts[2]; 

25                 } 

26                 return $v; 

27             }else{ 

28                 return $var; 

29             } 

30         } 

31     } 

32 } 

33 echo '<pre>'; 

34 print_r(get_headers('//www.jb51.net'));

您可能感兴趣的文章:

  • php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
  • 使用php get_headers 判断URL是否有效的解决办法
  • php中get_headers函数的作用及用法的详细介绍
  • PHP提示Cannot modify header information - headers already sent by解决方法
  • PHP错误Warning: Cannot modify header information - headers already sent by解决方法
  • PHP使用get_headers函数判断远程文件是否存在的方法
  • PHP实现的带超时功能get_headers函数
  • PHP getallheaders无法获取自定义头(headers)的问题

本文由贝博体育app发布于贝博体育app网络,转载请注明出处:php4如何获取远程文件大小类,模拟get_headers函数

关键词:

上一篇:获取访问者IP的方法
下一篇:没有了