PHP中使用cURL库模拟网络通信
Ajax技术受到跨域请求的限制,解决方法之一就是用PHP实现代理访问。PHP中用curl库实现网络访问。
PHP中使用curl库比较简单,可以编写一个类来实现网络访问功能。google api php client中的apiCurlIO类就是个不错的例子,我就参照该类,写了一个简单的网络IO类。
主要分为以下几步:
初始化curl
$curl = curl_init();
设置参数,包括
网址
curl_setopt($curl, CURLOPT_URL, $request->getUrl());
HTTP请求头
curl_setopt($curl, CURLOPT_HTTPHEADER, $parsed);
POST参数
curl_setopt($curl, CURLOPT_POSTFIELDS, $request->getPostBody());
SSL验证
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl返回结果的方式
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
运行curl对象,获取返回结果
$respData = curl_exec($curl);
获取返回信息
$respHttpCode = (int) curl_getinfo($curl, CURLINFO_HTTP_CODE);
$respHeaderSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
获取错误信息
$curlErrorNum = curl_errno($curl);
$curlError = curl_error($curl);
关闭curl对象
curl_close($curl);
参见:
《PHP文档的curl说明》
《PHP的cURL库功能简介:抓取网页,POST数据及其他》
