判断远程图片体积php插件(火车头)

使用方式 http请求
你的地址/index.php?img=http://v1.qzone.cc/pic/201701/10/19/29/5874c5a921ec9011.jpeg!600x600.jpg
直接=图片网址 然后返回结果
index.php
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. error_reporting(E_ALL^E_NOTICE); //关闭错误提示
  4. if($_GET['img'])
  5. {
  6. $uri=$_GET['img'];
  7. }
  8. else
  9. {
  10. echo "请求图片地址异常或为空<br />";
  11. }
  12. function remote_filesize($uri)
  13. {
  14. ob_start();
  15. $ch = curl_init($uri);
  16. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//使用SSL服务器端
  17. curl_setopt($ch, CURLOPT_HEADER, 1);
  18. curl_setopt($ch, CURLOPT_NOBODY, 1);
  19. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  20. $okay = curl_exec($ch);
  21. curl_close($ch);
  22. $head = ob_get_contents();
  23. ob_end_clean();
  24. $regex = '/Content-Length:\s([0-9].+?)\s/';
  25. $count = preg_match($regex, $head, $matches);
  26. if (isset($matches[1]))
  27. {
  28. $size = $matches[1];
  29. }
  30. else
  31. {
  32. $size = 'unknown';
  33. }
  34. $last_kb = round($size/1024,0);
  35. return $last_kb.'KB';
  36. }
  37. echo "体积为:<br />".remote_filesize($uri)."<br />地址是:<br />$uri";
新增支持 https 的图片判断
----
适用于本地抓图片为缩略图时过滤掉体积比较大的图;
支持判断远程文件
以下是火车头直接使用版 //可直接在火车头里面请求这个地址 获取返回数据
如果返回了 <htc>imgnormal</htc> 说明图片没有问题 可以进行下一步采集否则就不采集
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. error_reporting(E_ALL^E_NOTICE); //关闭错误提示
  4. function remote_filesize($uri)
  5. {
  6. ob_start();
  7. $ch = curl_init($uri);
  8. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//使用SSL服务器端
  9. curl_setopt($ch, CURLOPT_TIMEOUT,10); //设置超时时间
  10. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,11); //设置连接等待时间
  11. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//允许服务器端重定向
  12. curl_setopt($ch, CURLOPT_HEADER, 1);
  13. curl_setopt($ch, CURLOPT_NOBODY, 1);
  14. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  15. $okay = curl_exec($ch); //执行会话
  16. curl_close($ch);
  17. $head = ob_get_contents();
  18. ob_end_clean();
  19. $regex = '/Content-Length:\s([0-9].+?)\s/'; //正则获取文件长度
  20. $count = preg_match($regex, $head, $matches);
  21. if (isset($matches[1]))
  22. {
  23. $size = $matches[1];
  24. }
  25. else
  26. {
  27. $size = 'unknown';
  28. }
  29. $last_kb = round($size/1024,0);
  30. return $last_kb;
  31. }
  32. if($_GET['img']) //get字段
  33. {
  34. $uri=$_GET['img'];
  35. }
  36. else
  37. {
  38. echo "请求非法";
  39. }
  40. $LimitSize =1024; //设置允许文件最大值, 单位KB
  41. $MiniSize =1; //设置允许文件最小值, 单位KB
  42. if (remote_filesize($uri)>$LimitSize)
  43. {
  44. echo "<htc>imgtoolarge</htc>";
  45. //echo "<br />体积为:".remote_filesize($uri)."KB<br />地址是:$uri";
  46. }
  47. elseif (remote_filesize($uri)>$MiniSize && remote_filesize($uri)<$LimitSize)
  48. {
  49. echo "<htc>imgnormal</htc>";
  50. echo "<br />体积为:".remote_filesize($uri)."KB<br />地址是:$uri";
  51. }

非凡网 博客

我只是帮你筛选价值。

你也许喜欢

发表评论