php获取文件类型、大小效率最高的3种方法

2015年07月04日 14:34 by:唠吧小站

php获取文件类型、大小效率最高的3种方法

演示地址: http://www.lao8.org/test/getfile_info.php

1、 获取本地文件信息的方法:

pathinfo 获取本地文件类型信息:

可用参数:
  • PATHINFO_DIRNAME - 返回文件目录
  • PATHINFO_BASENAME - 返回 basename
  • PATHINFO_EXTENSION - 返回 后缀名

演示代码:

  1. $file='up/20150703/2015070316375844.jpg';
  2. echo ' ';
  3. $t = microtime();
  4. echo '

    php pathinfo以数组的形式返回文件路径的信息:

  5. ';
  6. print_r(pathinfo($file));
  7. echo '获取文件所在目录',pathinfo($file,PATHINFO_DIRNAME),'
    ';
  8. echo '获取文件名',pathinfo($file,PATHINFO_BASENAME),'
    ';
  9. echo '获取文件后缀名',pathinfo($file,PATHINFO_EXTENSION),'
    ';
  10. $t2 = microtime();
  11. echo 'pathinfo运行'.($t2-$t).'毫秒';

2、 获取远程文件/图片信息的方法

第一种方法:用curl 获取图片、文件信息

curl方式老强大了,可以多线程,设置超时时间,抓取转跳,设置代理,登录,伪装等,强烈推荐这种方式。

curl_setopt参数请参考:PHP CURL curl_setopt()函数参数大全.

  1. $url = 'http://www.lao8.org/upload/20140604/meinvtu-1401893476-103.jpg';
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_TIMEOUT, 100);//设置超时时间
  4. curl_setopt($ch, CURLOPT_URL,$url);
  5. curl_setopt($ch, CURLOPT_USERAGENT, 'Baiduspider+(+http://www.baidu.com/search/spider.htm)'); //伪装成百度蜘蛛
  6. curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');//设置为客户端支持gzip压缩
  7. curl_setopt($ch, CURLOPT_HEADER ,1);
  8. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,60);
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不用显示在屏幕上
  10. curl_setopt($ch, CURLOPT_NOBODY,1);//不用返回body部分内容

  11. $re  = curl_exec($ch);
  12. $res = curl_getinfo($ch);
  13. echo '

    php curl 获取远程(图片/文档/视频等文件)的信息。

  14. ';
  15. print_r($res);
  16. echo '文件类型:'.$res['content_type'];
  17. $t2 = microtime();
  18. echo 'curl运行',$t2-$t,'毫秒';

第二种方法:用get_header获取远程文件信息。

演示代码:
  1. $url = 'http://www.lao8.org/upload/20140604/meinvtu-1401893476-103.jpg';
  2. echo '

    php get_headers 获取远程(图片/文档/视频等文件)的信息。

    ';
  3. print_r (get_headers($url, 1));
  4. $t2 = microtime();
  5. echo 'get_headers运行',$t2-$t,'毫秒';
标签:php 文件信息