php中curl、fsockopen的应用

这是简单的将一个变量post到另外一个页面

$url = ‘‘;$data = array(‘a‘=> ‘b‘);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);$ret = curl_exec($ch);curl_close($ch);

主要说下这个选项CURLOPT_RETURNTRANSFER:如果设置为true/1,则curl_exec的时候不会自动将请求网页的内容输出到屏幕,$ret为请求网页的内容,如果设置为false/0,则curl_exec的时候会自动将请求网页的内容输出到屏幕,此时如果请求成功的话$ret的内容是1或者true。

下面是上传本地文件的代码,如果需要上传远程文件,则先down到本地,然后删掉即可(如有同学有别的办法还请告知):

$url = ‘‘;$file = ‘1.jpg‘;$field[‘uploadFile‘] = ‘@‘.$file;//(uploadFile为接收端的name名)$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $field);$ret = curl_exec($ch);curl_close($ch);

-------------------------------------------------------------------------------------

这是fsockopen的办法:

$uploadInfo = array(    ‘host‘=>‘‘,    ‘port‘=>‘80‘,    ‘url‘=>‘/upload.php‘);$fp = fsockopen($uploadInfo[‘host‘],$uploadInfo[‘port‘],$errno,$errstr);$file = ‘1.jpg‘;

$content = file_get_contents($file);$boundary = md5(time());$out.="--".$boundary."\r\n";$out.="Content-Disposition: form-data; name=\"uploadFile\"; filename=\"".$file."\"\r\n";$out.="Content-Type: image/jpg\r\n\r\n";$out.=$content."\r\n";$out.="--".$boundary."\r\n";

fwrite($fp,"POST ".$uploadInfo[‘url‘]." HTTP/1.1\r\n");fwrite($fp,"Host:".$uploadInfo[‘host‘]."\r\n");fwrite($fp,"Content-Type: multipart/form-data; boundary=".$boundary."\r\n");fwrite($fp,"Content-length:".strlen($out)."\r\n\r\n");fwrite($fp,$out);while (!feof($fp)){    $ret .= fgets($fp, 1024);}fclose($fp);$ret = trim(strstr($ret, "\r\n\r\n"));preg_match(‘/http:.*/‘, $ret, $match);return $match[0];
时间: 2024-10-10 23:13:23

php中curl、fsockopen的应用的相关文章

php读取网络文件curl,fsockopen,file_get_contents,file,fopen几种方法

php读取网络文件 curl, fsockopen ,file_get_contents 几个方法的效率对比 最近需要获取别人网站上的音乐数据.用了file_get_contents函数,但是总是会遇到获取失败的问题,尽管按照手册中的 例子设置了超时,可多数时候不会奏效: $config['context'] = stream_context_create(array(‘http’ => array(‘method’ => “GET”,   ’timeout’ => 5//这个超时时间不

Http原理及PHP中cURL的使用

为了给接下来的教程做好铺垫,本文将讲述如何用PHP发出Http请求进行模拟登录,顺带会讲一些Http请求原理.模拟登录…就是模拟浏览器登录嘛,所谓请求,只不过是你向网站发一些字,网站又给你回复一些字,这一般都是基于Http或Https协议的.平时是浏览器帮我们做好了这些工作,封装数据发送到指定网站,然后接收,最后编译成网页显示出来.在模拟登录中,呵呵,这些都要我们自己做,只是最后不用编译…只要提取到需要的数据就行了. PHP中模拟登录有三种方式.第一是直接用file_get_contens(网站

php中curl不支持https的解决办法

在php程序中使用curl去访问https站点时,报错:Protocol https not supported or disabled in libcurl 该错误信息表示php当时编译时使用的curl库不支持https, 验证方法为你的curl安装目录/bin/curl  -V  显示如下:Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp这表示curl是不支持 https的 为了支持https,需要下载源

php中的curl】php中curl的详细解说

本文我来给大家详细介绍下cURL的简单的使用方法,下文我将会给大家详细介绍cURL的高级应用, cURL可以使用URL的语法模拟浏览器来传输数据, FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些: HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证, 下载文件断点续传,上传文件断点续传,htt

php中curl模拟浏览器来传输数据

cURL可以使用URL的语法模拟浏览器来传输数据, 因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代

PHP中curl的CURLOPT_POSTFIELDS参数使用细节

CURL确实是一个不错的好工具,不仅在PHP中还是其他的操作系统中,都是一个非常好用的.但是如果你有些参数没有用好的话,那可能会得不到自己理想中的结果. 在通常情况下,我们使用 CURL 来提交 POST 数据的时候,我们已经习惯了这样的写法: curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 但是这样的写法在有时候并不会很好用,可能会得到服务器返回的 500 错误.但是我们尝试在使用 Socket 方式向服务器提交数据的时候,我们会得到非常正确

PHP中curl的使用

cURL 函数 curl_close — 关闭一个cURL会话 curl_copy_handle — 复制一个cURL句柄和它的所有选项 curl_errno — 返回最后一次的错误号 curl_error — 返回一个保护当前会话最近一次错误的字符串 curl_escape — 使用 URL 编码给定的字符串 curl_exec — 执行一个cURL会话 curl_file_create — 创建一个 CURLFile 对象 curl_getinfo — 获取一个cURL连接资源句柄的信息 c

PHP中CURL方法curl_setopt()函数的一些参数

转载自http://blog.csdn.net/superbirds/article/details/7532277 bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置,value是这个选项给定的值. 下列选项的值将被作为长整形使用(在option参数中指定):     •    CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,

linux中curl命令

linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻译的对不对,如果有误的地方,还请指正. -a/--append 上传文件时,附加到目标文件 -A/--user-agent <string>  设置用户代理发送给服务器 - anyauth   可以使用“任何”身份验证方法 -b/--cookie <name=string/file>