手机版

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

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

许多年前的代码突然拿来一用,特做此笔记(此处的密码用来定位内部错误位置,非超文本传送协议(Hyper Text Transport Protocol的缩写)代码)

?PHP $ URL=' http://c . hip照片。百度。com/image/w=210/sign=ed 30880 babec 8a 13141 a 50 E1 c 7029157/d52a 2834349 b 033 be 1a 9503 e 17 ce 36 d3d 539 BD 35。gif ';函数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/pjpg '=' jpg ',' image/x-png'='png ',' image/x-icon '=' ico '];if(!stristr($url,' http '){ $ msg[' code ']=2101;$msg['msg']='url地址不正确!';返回$ msg} $ dir=路径信息($ URL);//var _ dump($ dir);$ host=$ dir[' dir name '];$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的时候,返回原生的(原始)输出curl_setopt($ch,CURLOPT_HEADER,0);//是否输出页眉头信息0否一是curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$ time out);//超时时间$ 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=int val($ info[' Http _ code ']);$ HttpContentTYPe=$ info[' content _ TYPe '];$ HttPSizeDownLoad=int val($ info[' size _ download ']);if($httpCode!=' 200 '){ $ msg[' code ']=2102;$msg['msg']='url返回内容不正确!';返回$ msg} if($type0!isset($ imgs[$ HttpContentType]){ $ msg[' code ']=2103;$msg['msg']='url资源类型未知!';返回$ msg } if($ HttPSizeDownLoad 1){ $ msg[' code ']=2104;$msg['msg']='内容大小不正确!';返回$ msg } $ msg[' code ']=200;$ msg[' status ']=' success ';$msg['msg']='资源获取成功;if($type==0或$ HttpContentType==' text/html ')$ msg[' data ']=$ data;$ base _ 64=base64 _ encode($ data);if($ type==1)$ msg[' data ']=$ base _ 64;else if($ type==2)$ msg[' data ']=' data : { $ HttpContentType };base64,{ $ base _ 64 } ';else if($ type==3)$ msg[' data ']=' img src=' data : { $ HttpContentType };base64,{ $ base _ 64 } '/';else $msg['msg']='未知返回需求!unset($info,$data,$ base _ 64);返回$ msg}$msg=curl_url($url,3);if($msg['状态']=='成功')回显$ msg[' data '];死去;输出效果如下:

下面是部分卷曲函数参数说明:

卷曲库方法名称说明卷曲_关闭关闭一个卷曲会话curl_copy_handle拷贝一个卷曲连接资源的所有内容和参数curl_errno返回一个包含当前会话错误信息的数字编号卷曲误差返回一个包含当前会话错误信息的字符串curl_exec执行一个卷曲会话curl_getinfo获取一个卷曲连接资源句柄的信息卷曲_初始化初始化一个卷曲会话curl_multi_add_handle向卷曲批处理会话中添加单独的卷曲句柄资源curl_multi_close关闭一个批处理句柄资源curl_multi_exec解析一个卷曲批处理句柄curl_multi_getcontent返回获取的输出的文本流curl_multi_info_read获取当前解析的卷曲的相关传输信息卷曲_多重_初始化初始化一个卷曲批处理句柄资源curl _ multi _ remove _手柄移除卷曲批处理句柄资源中的某个句柄资源curl _ multi _ selectGet获取与卷曲扩展相关联的所有套接字,然后可以"选择" curl_setopt_array以数组的形式为一个卷曲设置会话参数curl _ setopt为一个卷曲设置会话参数卷曲_版本获取卷曲相关的版本信息

curl_setopt()参数的名称指示CURLOPT _ INFILESIZE。当你上传一个文件到一个远程站点,这个选项告诉PHP上传文件的大小。CURLOPT_VERBOSE如果您希望CURL报告所有意外情况,请将此选项设置为非零值。CURLOPT_HEADER如果要在输出中包含一个标题,请将此选项设置为非零值。CURLOPT_NOPROGRESS如果无法在PHP中为CURL传输显示进度条,请将此选项设置为非零值。注意:PHP会自动将该选项设置为非零值。您应该仅出于调试目的更改此选项。CURLOPT_NOBODY如果不想在输出中包含身体部分,请将此选项设置为非零值。CURLOPT_FAILONERROR如果希望PHP在出现错误时不显示(HTTP代码返回300或更多),请将此选项设置为一个非零值。默认行为是返回正常页面并忽略代码。CURLOPT_UPLOAD如果希望PHP为上传做准备,请将此选项设置为非零值。CURLOPT_POST如果希望PHP进行常规的HTTP POST,请将此选项设置为非零值。这种POST是一种常见的应用程序/x-www-from-urlencoded类型,主要用于HTML表单。CURLOPT_FTPLISTONLY将此选项设置为非零值,PHP将列出FTP的目录名。CURLOPT_FTPAPPEND将此选项设置为非零值,PHP将应用远程文件,而不是覆盖它。CURLOPT_NETRC将这个选项设置为非零值,PHP会搜索你的~。/netrc文件,其中包含要连接到的远程站点的用户名和密码。CURLOPT_FOLLOWLOCATION将此选项设置为非零值的标头(如“Location:”),服务器会将其作为HTTP标头的一部分发送(注意,这是递归的,PHP会发送一个形状为“Location:”的标头)。CURLOPT_PUT将此选项设置为非零值,以便使用HTTP上传文件。要上传此文件,必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项。CURLOPT_MUTE将此选项设置为非零值,PHP将对CURL函数完全保持沉默。CURLOPT_TIMEOUT将长整形数设置为最大秒数。CURLOPT_LOW_SPEED_LIMIT设置一个长整形数来控制传输多少字节。CURLOPT_LOW_SPEED_TIME设置一个长整形数来控制传输由CURLOPT_LOW_SPEED_LIMIT指定的字节数需要多少秒。CURLOPT_RESUME_FROM传递一个长整形参数,该参数包含字节偏移地址(您想要传输到的起始形式)。CURLOPT _ SSLVERSION传递一个包含SSL版本的长参数。默认的PHP将由它自己的努力决定,为了更安全,您必须手动设置它。CURLOPT_TIMECONDITION传递一个长参数,指定如何处理CURLOPT_TIMEVALUE参数。您可以将此参数设置为TIMEND _ IFmodFART或timecond _ isunmodsin。这仅用于HTTP。CURLOPT_TIMEVALUE从1970-1-1到现在经过了几秒钟。这个时间将被CURLOPT_TIMEVALUE选项用作指定值,或者被默认的time mond _ ifmodafter使用。这是你想用PHP检索的网址。您也可以在使用curl_init()函数初始化时设置此选项。CURLOPT_USERPWD传递一个样式为[username]:[password]的字符串,PHP使用该字符串进行连接。CURLOPT _ PROXYUSERPWD以[username]:[password]的形式传递一个字符串来连接到HTTP代理。CURLOPT_RANGE传递您想要指定的范围。应该是“X-Y”格式,不包括X或Y。HTTP传输也支持几个区间,用搞笑句子隔开(X-Y,N-M)。CURLOPT_POSTFIELDS传递一个字符串作为HTTP“POST”操作的所有数据。CURLOPT_REFERER在HTTP请求中包含一个带有“REFERER”头的字符串。CURLOPT_USERAGENT在HTTP请求中包含一串“用户代理”头。CURLOPT_FTPPORT传递一个由FTPPORT”指令使用的IP地址。这个开机自检指令告诉远程服务器连接到我们指定的IP地址。该字符串可以是IP地址、主机名、网络接口名称(在UNIX下)或“-”(使用系统默认IP地址)。CURLOPT_COOKIE传递一个包含HTTP cookie的头连接。CURLOPT_SSLCERT传递一个包含PEM格式证书的字符串。

CURLOPT_SSLCERTPASSWD传递一个密码,该密码包含使用CURLOPT_SSLCERT证书所需的密码。CURLOPT_COOKIEFILE传递一个包含cookie数据的文件名字符串。这个cookie文件可以是网景格式的,也可以是文件中堆积的HTTP样式的头。当发出一个HTTP请求时,传递一个由GET或HEAD使用的字符。若要执行DELETE或其他操作是有益的,请在执行http请求时传递要使用的字符串,而不是get或head。这对于执行另一个更模糊的http请求很有用。注意:在确认您的服务器支持命令之前,不要这样做。以下选项需要文件描述(通过使用fopen()函数获得):CURLOPT_FILE将是您放入并发送的输出文件,默认值为STDOUT。CURLOPT_INFILE,这是你发送的输入文件。这个文件包含你的输出的标题。文件CURLOPT_STDERR包含错误,而不是STDERR。比如要让页面登录,目前的做法是每次登录一次。有需要的人会做出改进。CURLOPT _ AUTOREFERER自动设置标题中的推荐人信息。当启用CURLOPT_RETURNTRANSFER时,CURLOPT_BINARYTRANSFER返回获取的数据。启用会话时,curl将只传递一个会话cookie,而忽略其他cookie。默认情况下,curl会将所有cookies返回给服务器。会话cookie是指用于确定服务器端会话是否有效的cookie。启用CURLOPT_CRLF时,将Unix换行符转换为回车换行符。当启用CURLOPT_DNS_USE_GLOBAL_CACHE时,将启用全局DNS缓存,这是线程安全的,默认情况下为真。CURLOPT_FAILONERROR显示HTTP状态代码,默认行为是忽略数字小于等于400的HTTP信息。当启用CURLOPT_FILETIME时,它将尝试修改远程文档中的信息。结果信息通过curl_getinfo()函数的CURLINFO_FILETIME选项返回。当启用CURLOPT_FOLLOWLOCATION时,服务器返回的“Location:”将在头中递归返回给服务器,可使用CURLOPT_MAXREDIRS限制递归返回的次数。Curlopt _ bid _ reuse在完成交互后被强制断开,不能再使用。CURLOPT_FRESH_CONNECT强制一个新连接来替换缓存中的连接。当启用CURLOPT_HTTPGET时,HTTP的方法将被设置为GET。因为GET是默认的,所以只有修改后才会使用。启用时,通过HTTP代理传输。CURLOPT_MUTE将卷曲函数中所有修改的参数恢复为默认值。CURLOPT_RETURNTRANSFER以文件流的形式返回curl_exec()获得的信息,而不是直接输出。函数curl_getinfo()用于获取curl连接资源句柄的信息。函数curl_getinfo()有两个参数,第一个参数是curl的资源句柄,第二个参数是以下常量:

curl_getinfo()参数的名称描述了CurlINFO _ effect _ URL CURLINFO _ HTTP _ CODE最后一个有效的URL地址最后一个收到的HTTP代码CURLINFO_FILETIME。如果不能得到,那么返回值为“-1”,curl info _ total _ time,上次传输所花费的时间CURLINFO_NAMELOOKUP_TIME,名称解析所花费的时间CURLINFO_CONNECT_TIME,连接建立所花费的时间CURLINFO_PRETRANSFER_TIME, 从建立连接到准备传输所花费的时间curl NFO_STARTTRANSFER_TIME从建立连接到传输所花费的时间CURLINFO _ REDIRECT _事务传输开始前重定向所花费的时间CURLINFO_SIZE_UPLOAD上传数据的总值CURLINFO_SIZE_DOWNLOAD下载数据的总值CURLINFO _ SIZE _ DOWNLOAD的平均下载速度CURLINFO_SPEED_UPLOAD平均上传速度CURLINFO _ HEADER _ SIZEheader part SIZE CURLINFO _ HEADER _ OUT发送请求字符串CURLINFO _ REQUEST _ SIZE HTTP请求中有问题的请求的大小_ Content _ LENGTH _ download from Content-LENGTH :字段在d CURLINFO _ Content _ LENGTH _ UPLOAD中读取的已下载内容的长度已上传内容大小的描述已下载内容的CURLINFO _ Content _ TYPE“Content-TYPE”值为NULL,表示服务器尚未发送有效的“Content-Type:标头”

摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接

版权声明:php卷曲简单采集图片生成base64编码(并附卷曲函数参数说明)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。