- 浏览: 338636 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
Aceslup:
很感谢分享。清晰的思路。
linux安装php,gd支持jpeg -
u011467537:
最后那个问题解决了么?
android,view的执行过程onDraw、onSizeChanged,onFinishInflate -
kerme:
写的很好,但是查出来的unicode格式的前两个字节输出是-1 ...
字符编码原理 ASCII,Unicode和UTF-8 -
ling凌yue月:
Errorize 写道 你是不是搞错了?Java代码是这样子的 ...
数组转换为树 -
Errorize:
你是不是搞错了?Java代码是这样子的么?
数组转换为树
class PostData { private $postURL; //要请求的url地址 private $postData; //提交的数据 key=>value方式 /** * 表示应答信息 * @var unknown_type */ private $responseBody; /** * 表示应答头信息 * @var unknown_type */ private $responseHead; /** * * @var unknown_type */ private $errMessage = ''; //返回的错误信息 public $CRLF = "\r\n"; public $sCookieFile = 'E:/tmp.cookie'; /** * 构造方法 * * @author * @param 要请求的url地址 * @param 要提交的数据 */ function __construct($url='', $data='') { $this->setPostURL($url); $this->setPostData($data); } /** * 设置url的值 * * @author * @param 要请求的url地址 */ public function setPostURL($url) { $this->postURL = $url; } /** * 设置data的值 * * @author * @param 要提交的数据 */ public function setPostData($data) { $this->postData = $data; } /** * * 返回错误信息 * * @author * @param type 说明 * @return 返回说明 */ public function getErrMessage() { return $this->errMessage; } /** * 返回应答信息 * * @author * @param type 说明 * @return 返回说明 */ public function getResponseBody() { return $this->responseBody; } /** * 返回应答头信息 * * @author * @param type 说明 * @return 返回说明 */ public function getResponseHead() { return $this->responseHead; } /** * <br /> * <span><strong>此方法已过期,不建议用,请用curlpost</strong></span><br /><br /> * 将$this->data提交到$this->url * * @author * @param postType 提交形式,post或是get * @param extensionalHeader 扩展的头文件。格式:array('Host' => 'Host: www.example.com','Connection' => 'Connection: close') * @return 返回的数据 * */ public function sendpost($postType='POST' ,$extensionalheader = array()) { $url = $this->postURL; $data = $this->postData == '' || !isset($this->postData) ? array() : $this->postData; //先解析url $url = parse_url($url); $url_port = !isset($url['port']) ? (($url['scheme'] == 'http') ? 80 : 443) : $url['port']; if (!$url) { $this->errMessage = "couldn't parse url"; return false; } //将参数拼成URL key1=value1&key2=value2 的形式 $encoded = ""; while (list($k, $v) = each($data)) { $encoded .= ($encoded ? '&' : ''); $encoded .= rawurlencode($k)."=".rawurlencode($v); } //echo $encoded;exit; $len = strlen($encoded); //拼上http头 $out = "{$postType} ".$url['path'].(isset($url['query']) ? ('?'.$url['query']) : '')." HTTP/1.1".$this->CRLF; $host = "Host:".$url['host']; $content_type = 'Content-type: application/x-www-form-urlencoded'; $connection = 'Connection: close'; $iheads = array( 'Host' => $host, 'Content-type' => $content_type, 'Connection' => $connection, ); $heads = array_merge($iheads, $extensionalheader); foreach ($heads as $k => $v) { $out .= $v.$this->CRLF; } $out .= "Content-Length: $len".$this->CRLF; $out .= $this->CRLF; $out .= $encoded.$this->CRLF; //打开一个sock $fp = @fsockopen($url['host'], $url_port); $line = ""; if (!$fp) { $this->errMessage = "{$errstr}({$errno})\n"; return false; } else { fwrite($fp,$out); while (!feof($fp)) { $line .= fgets($fp, 2048); } } if ($line) { $head = substr($line, 0, strpos($line, $this->CRLF.$this->CRLF)); $body = stristr($line, $this->CRLF.$this->CRLF); $body = substr($body, 4, strlen($body)); } fclose($fp); $this->responseHead = $head; $this->responseBody = $body; return $line; } /** * * 用curl向指定url提交数据 * * @author * @param $sendType str 提交类型 【可选】 * @param $extensionalheader array 附加头 【可选】 * @param $sendCookieFile boolean 是否发送cookie文件的路径 【可选】 默认路径为 tmp.cookie * @param $saveCookieFile boolean 是否保存cookie文件的路径 【可选】默认路径为 tmp.cookie * @param $cookie string 要发送的cookie字符串 比sendCookie参数优先级低如果已有sendCookie 则此选项无效【可选】 * @return 返回 返回的数据 */ public function curlpost($sendType = 'POST' ,$extensionalheader = array() , $sendCookieFile = false, $saveCookieFile = false, $cookie = false) { $url = $this->postURL; $data = $this->postData; $aurl = parse_url($url); $encoded = ""; //$sCookieFile = tempnam('.','cookie'); while (list($k, $v) = each($data)) { $encoded .= ($encoded ? '&' : ''); $encoded .= rawurlencode($k)."=".rawurlencode($v); } $ch = curl_init(); //初始化CURL句柄 curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL curl_setopt($ch, CURLOPT_HEADER, 1); //*-----------------设置发送cookie if ($sendCookieFile) { curl_setopt($ch, CURLOPT_COOKIEFILE, $this->sCookieFile); } else if ($cookie) { curl_setopt($ch, CURLOPT_COOKIE, $cookie); } //设置保存cookie if ($saveCookieFile) { curl_setopt($ch, CURLOPT_COOKIEJAR, $this->sCookieFile); } //-------------------------------*/ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 设为TRUE把curl_exec()结果转化为字串,而不是直接输出 if ($sendType != 'GET') { curl_setopt($ch, CURLOPT_POST, 1); //启用POST提交 curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded); //设置POST提交的字符串 } $host = $aurl['host']; $iheads = array( 'Host' => $host ,'Content-type' => 'Content-type: application/x-www-form-urlencoded' ,'Connection' => 'Connection: close' ); $heads = array_merge($iheads, $extensionalheader); curl_setopt($ch, CURLOPT_HTTPHEADER, $heads); //设置HTTP头信息 //curl_setopt($ch, CURLOPT_COOKIEFILE, $sCookieFile); //从$sCookieFile文件里得到信息 //file_put_contents($sCookieFile, ''); //curl_setopt($ch, CURLOPT_COOKIEJAR, $sCookieFile); //保存cookie信息到$sCookieFile文件里 $document = curl_exec($ch); //执行预定义的CURL $this->errMessage = curl_error($ch); $info = curl_getinfo($ch); curl_close($ch); $this->responseHead = substr($document, 0, $info['header_size']); $this->responseBody = substr($document, $info['header_size']); return $document; } /** * * 清除cookie文件中的内容 * * @author * @param type 说明 * @return 返回说明 */ function clearCookie() { file_put_contents($this->sCookieFile, ''); } }
发表评论
-
得到身份证信息
2014-08-19 10:09 922//根据身份证号得到信息 public s ... -
辗转相除求最大公因数(greatest common factor)欧几里得
2014-07-26 14:07 992/** * 得到最大公因数 * */ ... -
数组转换为树
2013-04-25 19:58 8434/** * $sourceArr 原来的数组 ... -
php生成指定位数(13位)的时间戳
2012-08-09 16:59 15977/** * * 返回一定位数的时间戳, ... -
php生成0到1(小数)的随机数
2012-06-18 15:38 6428function randomFloat($min = ... -
用smtp协议php发送email函数(发邮件)
2012-05-24 12:12 4293网上找发送email的函数,基本没找到,有发邮件的类,自 ... -
linux 下phpCentos rpm 包镜像
2012-02-02 12:10 1329地址一:http://mirror.fubra.com/rpm ... -
windows下php配置apache
2011-11-17 13:45 1797注意: 记住当在 Windows 环境下的 Apac ... -
nginx 支持pathinfo
2011-10-25 14:31 3877错误描述:1,打开网页,页面提示不支持pathinfo ... -
nginx,php不能上传大图问题(413)
2011-09-30 11:19 1949上传图片 出现错误:413 Request Entity To ... -
linux安装php,gd支持jpeg
2011-08-30 12:07 33094这几天弄一个项目的服务器,一同事突然告诉我报错误了 :Fata ... -
zend(ZendOptimizer)网站的帐号(用户名)和密码——公开
2011-05-06 15:14 1297帐号:test001@test001.com 密码:12345 ... -
php编程——sql查询(条件拼接)
2010-08-25 17:21 4410function GetProducts($catagor ... -
php post到指定URL——fsockopen
2010-07-26 17:19 4584<?php function sendpost($ ... -
php简单分页(初级)
2010-07-06 16:35 18711、数据库,这里是MySQL数据库 DROP TABLE ...
相关推荐
PHP 基于 curl 模拟 post 提交 json 数据示例 本文主要介绍了 PHP 基于 curl 模拟 post 提交 json 数据操作,通过实例形式分析了 PHP 使用 curl 实现 post 方式提交 json 数据相关操作步骤与留意事项。下面是文章的...
一个PHP curl get post通用类,curl 通用方法 。。get /post 传送数据,设置发送方式 0 get 1 post。具有很好的参考价值,朋友们如果喜欢可以下载,如果有更好的curl类可以发布到我们php中文网,大家一起学习交流。
主要介绍了PHP基于curl模拟post提交json数据操作,结合实例形式分析了php使用curl实现post方式提交json数据相关操作步骤与注意事项,代码简单实用,需要的朋友可以参考下
一个PHP curl get post通用类,curl 通用方法 。。get /post 传送数据,设置发送方式 0 get 1 post。具有很好的参考价值,朋友们如果喜欢可以下载,如果有更好的curl类可以发布到我们php中文网,大家一起学习交流。
2. 设置请求选项:`curl_setopt()`是设置cURL会话参数的关键函数,如URL、请求方法(GET、POST等)、超时时间、头信息、POST数据等。 3. 执行请求:`curl_exec()`执行之前配置的cURL会话,获取服务器响应。 4. 获取...
总结起来,"php-curl+ajax+json数据传输2.0版本"是利用PHP-cURL解决AJAX跨域请求的一种解决方案,它结合了AJAX的异步特性、JSON的数据交换优势以及cURL的服务器端请求处理能力。这个组合可以实现高效、安全的数据...
- **表单提交**:表单提交通常涉及POST请求,但CUrlHttp类可能会提供一个专门的`submitForm()`方法,处理表单字段和值,自动构造POST数据。 3. **curl选项设置** CUrlHttp类通过`setOpt()`方法,允许开发者设置...
在PHP开发中,有时我们需要从远程网站获取数据...总之,`php应用curl扩展抓取网页类.zip`提供的这个PHP类库,结合cURL扩展,为开发者提供了一种高效、灵活的方式来抓取和处理远程网页数据,是Web开发中的一种实用工具。
这个"php的curl整合类.zip"文件提供了一个封装好的PHP类,使得开发者可以更方便地利用cURL功能,模拟各种浏览器行为,执行自动化网站操作。下面将详细阐述cURL库的原理以及如何使用这个整合类。 1. **cURL库介绍** ...
CURL允许开发者从命令行或在代码中发起网络请求,执行文件上传、下载、POST数据、设置自定义HTTP头等操作。然而,直接使用CURL函数可能会使代码变得冗长且难以维护。为了解决这个问题,开发者经常会选择封装CURL功能...
总的来说,"php的curl登录采集的类.zip"文件提供了一个强大的工具,帮助开发者轻松地处理复杂的登录和数据抓取任务。通过理解cURL的工作原理以及这个类的内部实现,我们可以更有效地利用这个类库进行PHP的网络操作。
3. **高级功能**:`php_curl`支持多种HTTP方法(GET、POST、PUT等),可以设置HTTP头,进行POST数据提交,处理cookies,使用代理服务器,以及进行SSL连接。还可以通过设置选项实现自动重定向、超时控制、错误处理等...
在cUrl中,可以使用`curl_setopt`函数设置`CURLOPT_POSTFIELDS`选项来提交POST数据。而在我们的类中,可能已经封装了一个方法,如`postRequest($url, $postData)`,该方法接受URL和一个包含POST参数的数组,然后使用...
它们可以帮助我们理解`class.curl.php`中的类是如何工作的,通过查看这些示例,我们可以学习如何设置不同的请求参数,如URL、POST数据、HTTP头等,并获取返回的结果。 `dumpState.php`可能是一个用来调试或展示`...
一个php的curl封装类,基础发起curl请求函数,来源一定要设置成来自本站,要求结果为字符串且输出到屏幕上,发起get请求,发起post请求,处理发起非get请求的传输数据,发起put请求,发起delete请求。
php CURL函数可以模仿用户进行一些操作,如我们可以模仿用户提交数据也可以模仿用户进行网站访问了,下面我们来介绍利用CURL模拟进行微信接口的GET与POST例子,例子非常的简单就两个大家一起看看.
PHP的cURL库用于从服务器获取数据,它通过建立TCP连接发送HTTP请求。当出现499错误时,问题可能出在以下几个方面: 1. **超时设置**:cURL有一个超时设置,默认情况下,如果在指定时间内未收到任何数据,它将关闭...
- **POST请求**:可以设置`CURLOPT_POSTFIELDS`发送POST数据。 - **上传文件**:使用`CURLOPT_UPLOAD`和`CURLOPT_INFILE`进行文件上传。 - **处理cookies**:利用`CURLOPT_COOKIEJAR`和`CURLOPT_COOKIEFILE`管理...
`curlAction.class_oracle_phpCURL请求类` 的标题暗示了这个类可能特别关注于与 Oracle 数据库相关的 HTTP 请求处理。Oracle 数据库通常用于处理大规模的企业级数据,而通过 PHP 的 `cURL` 实现与数据库的接口通信,...
2. **设置POST数据** 当我们想要提交表单数据时,可以使用`curl_setopt()`函数设置`CURLOPT_POSTFIELDS`选项。对于文件上传,我们需要将文件路径作为值,文件名作为键。例如: ```php $postFields = array( '...