在学习curl的过程中,我们知道curl是相当于一个简单的浏览器,通过往对应的服务上面发送数据信息,返回服务器的响应结果,这个在Java里面主要是使用封装好的httpclient来进行操作,但是自己认为在php里面会更加的简单,方便!
首先使用:curl_init,初始化一个新的会话,返回一个cURL句柄,这个就像是Java里面的socket通信,建立网络通信连接。
curl_setopt 这个是主要的方法,curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。可以设置的参数很多,比如:CURLOPT_URL 这个是最重要的,没有请求地址,后面参数就没用了,CURLOPT_ENCODING设置请求的编码
下面是一个php curl获取新浪股票信息的实例:
function get_stock_now_info($stock_code){
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, “.$stock_code);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_ENCODING ,’utf-8′); //加入gzip解析curl_setopt($ch, CURLOPT_HEADER, 0);// 3. 执行并获取HTML文档内容$output = curl_exec($ch);// 4. 释放curl句柄curl_close($ch);$output = mb_convert_encoding($output, “utf-8″, “gbk”);$strs=explode(“=”, $output);if(strlen($strs[1])<10){ $ch = curl_init();curl_setopt($ch, CURLOPT_URL, “.$stock_code);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_ENCODING ,’utf-8′); //加入gzip解析curl_setopt($ch, CURLOPT_HEADER, 0);// 3. 执行并获取HTML文档内容$output = curl_exec($ch);// 4. 释放curl句柄curl_close($ch);$output = mb_convert_encoding($output, “utf-8″, “gbk”);$strs=explode(“=”, $output);}$return_str=$strs[1];$return_str= substr($return_str, 1,strlen($return_str)-4);return explode(‘,’, $return_str);}
因为该接口需要指定sz或sh,所以只能是分析返回的结果来判断一下,其中
mb_convert_encoding($output, “utf-8″, “gbk”);这个主要是解决编码乱码的问题,可以参考:
返回数组的数据如下: