curl实例-通过新浪股票接口获取股票信息

在学习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, “http://hq.sinajs.cn/list=sz”.$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, “http://hq.sinajs.cn/list=sh”.$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”);这个主要是解决编码乱码的问题,可以参考:

http://www.cangzhang.com/1425.html

返回数组的数据如下:

image

共有 0 条评论

Top