php curl简单采集图片生成base64编码(并附curl函数参数说明)

  1. 许多年前的代码突然拿来一用,特做此笔记(此处的code用来定位内部错误位置,非http code)

[php] view plain copy

  1. <?php
  2. $url="http://c.hiphotos.baidu.com/image/w%3D210/sign=ed30880babec8a13141a50e1c7029157/d52a2834349b033be1a9503e17ce36d3d539bd35.gif";
  3. function curl_url($url,$type=0,$timeout=30){
  4. $msg = [‘code‘=>2100,‘status‘=>‘error‘,‘msg‘=>‘未知错误!‘];
  5. $imgs= [‘image/jpeg‘=>‘jpeg‘,
  6. ‘image/jpg‘=>‘jpg‘,
  7. ‘image/gif‘=>‘gif‘,
  8. ‘image/png‘=>‘png‘,
  9. ‘text/html‘=>‘html‘,
  10. ‘text/plain‘=>‘txt‘,
  11. ‘image/pjpeg‘=>‘jpg‘,
  12. ‘image/x-png‘=>‘png‘,
  13. ‘image/x-icon‘=>‘ico‘
  14. ];
  15. if(!stristr($url,‘http‘)){
  16. $msg[‘code‘]= 2101;
  17. $msg[‘msg‘] = ‘url地址不正确!‘;
  18. return $msg;
  19. }
  20. $dir= pathinfo($url);
  21. //var_dump($dir);
  22. $host = $dir[‘dirname‘];
  23. $refer= $host.‘/‘;
  24. $ch = curl_init($url);
  25. curl_setopt ($ch, CURLOPT_REFERER, $refer); //伪造来源地址
  26. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//返回变量内容还是直接输出字符串,0输出,1返回内容
  27. curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);//在启用CURLOPT_RETURNTRANSFER的时候,返回原生的(Raw)输出
  28. curl_setopt($ch, CURLOPT_HEADER, 0); //是否输出HEADER头信息 0否1是
  29. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //超时时间
  30. $data = curl_exec($ch);
  31. //$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
  32. //$httpContentType = curl_getinfo($ch,CURLINFO_CONTENT_TYPE);
  33. $info = curl_getinfo($ch);
  34. curl_close($ch);
  35. $httpCode = intval($info[‘http_code‘]);
  36. $httpContentType = $info[‘content_type‘];
  37. $httpSizeDownload= intval($info[‘size_download‘]);
  38. if($httpCode!=‘200‘){
  39. $msg[‘code‘]= 2102;
  40. $msg[‘msg‘] = ‘url返回内容不正确!‘;
  41. return $msg;
  42. }
  43. if($type>0 && !isset($imgs[$httpContentType])){
  44. $msg[‘code‘]= 2103;
  45. $msg[‘msg‘] = ‘url资源类型未知!‘;
  46. return $msg;
  47. }
  48. if($httpSizeDownload<1){
  49. $msg[‘code‘]= 2104;
  50. $msg[‘msg‘] = ‘内容大小不正确!‘;
  51. return $msg;
  52. }
  53. $msg[‘code‘]  = 200;
  54. $msg[‘status‘]=‘success‘;
  55. $msg[‘msg‘]   = ‘资源获取成功‘;
  56. if($type==0 or $httpContentType==‘text/html‘) $msg[‘data‘] = $data;
  57. $base_64 = base64_encode($data);
  58. if($type==1) $msg[‘data‘] = $base_64;
  59. elseif($type==2) $msg[‘data‘] = "data:{$httpContentType};base64,{$base_64}";
  60. elseif($type==3) $msg[‘data‘] = "<img src=‘data:{$httpContentType};base64,{$base_64}‘ />";
  61. else $msg[‘msg‘] = ‘未知返回需求!‘;
  62. unset($info,$data,$base_64);
  63. return $msg;
  64. }
  65. $msg = curl_url($url,3);
  66. if($msg[‘status‘]==‘success‘) echo $msg[‘data‘];
  67. die;
  68. ?>
时间: 2024-10-11 17:52:40

php curl简单采集图片生成base64编码(并附curl函数参数说明)的相关文章

减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

原文:减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术) 在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”,那么,这一篇博文将讲解  “ 将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片”. 一.为何选择将图片转成二进制并生成Base64编码,可以在网页中通过url查看

Base64编码 图片与base64编码互转

package com.education.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * Created by jn-dinggao on 2016/2/4. */ public class Base64Util { // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 public static String GetImageStr(Stri

图片和base64编码字符串 互相转换,图片和byte数组互相转换

图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * @author lishupeng * @create 2017-05-06 下午 2:56 **/ public class Base64Test { public static void main(String[] args) { String strImg = GetImageSt

C#中图片转换为Base64编码,Base64编码转换为图片

#region 图片转为base64编码的字符串 public string ImgToBase64String(string Imagefilename) { try { Bitmap bmp = new Bitmap(Imagefilename); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] arr = new byte[ms.Lengt

python 将图片转换为base64编码转储进数据库

# _*_ coding: utf-8 _*_#中间件:拓展工具遍历文件夹,对文件夹图片进行base64编码,写入数据库,并且读取查找方法__author__ = 'wf15038'__date__ = "2018/8/28 18:38" import pymysqlimport sysfrom datetime import datetimeimport base64import os now = datetime.now().strftime('%Y-%m-%d %H:%M:%S'

JS获取图片的base64编码

获取图片的base64编码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input accept="image/*" name="upimage" id="upload_file" type="

字符串与图片的Base64编码转换操作

//图片 转为 base64编码的文本 private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "选择要转换的图片"; dlg.Filter = "Image files (*.jpg;*.bmp;*.gif)|*.jpg*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";

HTML5之图片转base64编码

<!Doctype html><html> <head> <meta charset="utf-8" /> <title>图片转base64编码</title> <style> * { margin: 0; padding: 0; } .file_div{ width: 50%; margin: 0px 1px; padding: 1% 10px; } .demo{ width: 50%; margin

图片的base64编码的利与弊?

什么是图片的base64编码? 图片的base64编码,就是将一张图片的数据进行base64编码成字符串,用这个字符串代替图片的地址.这样的话下载图片,就不用发起http请求了,而可以随着html的下载一起将图片下载到本地. 图片的base64编码的利处: 将一些小图片数据编码成base64,可以减少http请求,避免造成浏览器请求阻塞. 图片的base64编码的弊处: 使用图片的base64编码,虽然可以减少http请求,但是如果在处理过程中,将大图片数据也进行了base64编码,这样在很大的