Home >php教程 >php手册 >PHP 获取远程文件大小的3种解决方法

PHP 获取远程文件大小的3种解决方法

WBOY
WBOYOriginal
2016-06-06 20:28:301359browse

以下是对PHP中获取远程文件大小的3种解决方法进行了详细的介绍,需要的朋友参考下

1、使用file_get_contents()

复制代码 代码如下:


$file = file_get_contents($url);
echo strlen($file);
?>


2. 使用get_headers()

复制代码 代码如下:


$header_array = get_headers($url, true);
$size = $header_array['Content-Length'];
echo $size;
?>


PS:
需要打开allow_url_fopen!
如未打开会显示
Warning: get_headers() [function.get-headers]: URL file-access is disabled in the server configuration
3.使用fsockopen()

复制代码 代码如下:


 function get_file_size($url) {
     $url = parse_url($url);

     if (empty($url['host'])) {
         return false;
     }

     $url['port'] = empty($url['post']) ? 80 : $url['post'];
     $url['path'] = empty($url['path']) ? '/' : $url['path'];

     $fp = fsockopen($url['host'], $url['port'], $error);

     if($fp) {
         fputs($fp, "GET " . $url['path'] . " HTTP/1.1\r\n");
         fputs($fp, "Host:" . $url['host']. "\r\n\r\n");

         while (!feof($fp)) {
             $str = fgets($fp);
             if (trim($str) == '') {
                 break;
             }elseif(preg_match('/Content-Length:(.*)/si', $str, $arr)) {
                 return trim($arr[1]);
             }
         }
         fclose ( $fp);
         return false;
     }else {
         return false;
     }
 }
 ?>

,免备案空间,香港虚拟主机,香港服务器
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn