php中curl简单采集图片如何生成base64编码

这篇文章给大家分享的是有关php中curl简单采集图片如何生成base64编码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

示例分析

<?php  $url="%3D210/sign=ed30880babec8a13141a50e1c7029157/d52a2834349b033be1a9503e17ce36d3d539bd35.gif"; function curl_url($url,$type=0,$timeout=30){  $msg = ['code'=>2100,'status'=>'error','msg'=>'未知错误!'];  $imgs= ['image/jpeg'=>'jpeg',         'image/jpg'=>'jpg',         'image/gif'=>'gif',         'image/png'=>'png',         'text/html'=>'html',         'text/plain'=>'txt',         'image/pjpeg'=>'jpg',         'image/x-png'=>'png',         'image/x-icon'=>'ico'   ];  if(!stristr($url,'http')){  $msg['code']= 2101;  $msg['msg'] = 'url地址不正确!';   return $msg;  }   $dir= pathinfo($url);  //var_dump($dir);  $host = $dir['dirname'];  $refer= $host.'/';  $ch = curl_init($url);  curl_setopt ($ch, CURLOPT_REFERER, $refer); //伪造来源地址  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//返回变量内容还是直接输出字符串,0输出,1返回内容  curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);//在启用CURLOPT_RETURNTRANSFER的时候,返回原生的(Raw)输出  curl_setopt($ch, CURLOPT_HEADER, 0); //是否输出HEADER头信息 0否1是  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //超时时间  $data = curl_exec($ch);  //$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);   //$httpContentType = curl_getinfo($ch,CURLINFO_CONTENT_TYPE);  $info = curl_getinfo($ch);  curl_close($ch);  $httpCode = intval($info['http_code']);  $httpContentType = $info['content_type'];  $httpSizeDownload= intval($info['size_download']);  if($httpCode!='200'){  $msg['code']= 2102;  $msg['msg'] = 'url返回内容不正确!';  return $msg;  }  if($type>0 && !isset($imgs[$httpContentType])){  $msg['code']= 2103;  $msg['msg'] = 'url资源类型未知!';  return $msg;  }  if($httpSizeDownload<1){  $msg['code']= 2104;  $msg['msg'] = '内容大小不正确!';  return $msg;  }  $msg['code'] = 200;  $msg['status']='success';    $msg['msg']  = '资源获取成功';  if($type==0 or $httpContentType=='text/html') $msg['data'] = $data;  $base_64 = base64_encode($data);  if($type==1) $msg['data'] = $base_64;  elseif($type==2) $msg['data'] = "data:{$httpContentType};base64,{$base_64}";  elseif($type==3) $msg['data'] = "<img src='data:{$httpContentType};base64,{$base_64}' />";  else $msg['msg'] = '未知返回需求!';   unset($info,$data,$base_64);  return $msg; } $msg = curl_url($url,3); if($msg['status']=='success') echo $msg['data']; die; ?>

输出效果如下:

php中curl简单采集图片如何生成base64编码

下面是部分curl函数参数说明:

CURL库方法
名称 说明
curl_close 关闭一个curl会话
curl_copy_handle 拷贝一个curl连接资源的所有内容和参数
curl_errno 返回一个包含当前会话错误信息的数字编号
curl_error 返回一个包含当前会话错误信息的字符串
curl_exec 执行一个curl会话
curl_getinfo 获取一个curl连接资源句柄的信息
curl_init 初始化一个curl会话
curl_multi_add_handle 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close 关闭一个批处理句柄资源
curl_multi_exec 解析一个curl批处理句柄
curl_multi_getcontent 返回获取的输出的文本流
curl_multi_info_read 获取当前解析的curl的相关传输信息
curl_multi_init 初始化一个curl批处理句柄资源
curl_multi_remove_handle 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array 以数组的形式为一个curl设置会话参数
curl_setopt 为一个curl设置会话参数
curl_version 获取curl相关的版本信息

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。