php二次开发股票系统代码:腾讯股票数据接口地址、批量获取股票信息、转换为腾讯接口指定的股票格式

1、腾讯股票数据控制器

<?php
namespace app\index\controller;

use think\Model;
use think\Db;

const BASE_URL = 'http://aaaaaa.aaaaa.com'; //腾讯数据地址

class TencentStocks extends Home
{
//里面具体的方法
}

2、请求接口返回内容

 function juhecurl($url, $params = false, $ispost = 0)
    {
        header('Content-Type:text/html; charset=gb_2312');
        $httpInfo = array();
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'JuheData');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        if ($ispost) {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            curl_setopt($ch, CURLOPT_URL, $url);
        } else {
            if ($params) {
                curl_setopt($ch, CURLOPT_URL, $url . '/' . $params);
            } else {
                curl_setopt($ch, CURLOPT_URL, $url);
            }
        }
        $response = curl_exec($ch);
        if ($response === FALSE) {
            //echo "cURL Error: " . curl_error($ch);
            return false;
        }
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
        curl_close($ch);
        return $response;
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、批量获取股票信息

*0: 不明
*1: 名字
*2: 代码
*3: 现价
*4: 昨日收
*5: 今日开
*31: 涨跌价
*32: 涨跌百分比
*33: 最高价
*34: 最低价

function getStockInfo($codes)
    {
        $codeStrings = "";

        $obj = new self();
        foreach ($codes as $item) {
            $code = $obj->toFrontStockCode($item);
            $codeStrings = $codeStrings . ',' . $code;
        }
        if (startwith($codeStrings, ",")) {
            $codeStrings = substr($codeStrings, 1);
        }
        $params = array(
            "q" => $codeStrings,//股票编号,上海股市以sh开头,深圳股市以sz开头如:sh601009
        );
        $paramstring = http_build_query($params);
        $res = $obj->juhecurl(BASE_URL, $paramstring);
        $result1 = explode(';', $res);
        $data = array();
        foreach ($result1 as $item) {
            $item = explode('"', $item)[1];
            $item1 = explode('~', $item);
            $codeInfo = array(
                "stockName" => $item1[1],
                "stockCode" => $item1[2],
                "currentPrice" => $item1[3] == 0 ? $item1[4] : $item1[3],
                "differentialPercent" => $item1[32],
                "differential" => $item1[31],
                "yesterdayCollect" => $item1[4],
                "todayOpen" => $item1[5]
            );
            $data[] = $codeInfo;
        }
        return $obj->array_iconv("gbk", "utf-8", $data);
//        echo '<pre>';
//        print_r($data);
//        die();
    }

4、第一个参数为当前编码,第二个参数为转换后的编码,第三个参数是一维或者二维数组

 function array_iconv($in_charset, $out_charset, $arr)
    {
        foreach ($arr as $k => &$v) {
            if (is_array($v)) {
                foreach ($v as $kk => &$vv) {
                    $vv = iconv($in_charset, $out_charset, $vv);
                }
            } else {
                $v = iconv($in_charset, $out_charset, $v);
            }
        }
        return $arr;
    }

5、截取指定两个字符之间的字符串

public function cut($begin, $end, $str)
{
    $b = mb_strpos($str, $begin) + mb_strlen($begin);
    $e = mb_strpos($str, $end) - $b;
    return mb_substr($str, $b, $e);
}

6、转换为腾讯接口指定的股票格式

function toFrontStockCode($code)
{
    if (startwith($code, "0") || startwith($code, "3")) {
        return "sz" . $code;
    } else if (startwith($code, "6")) {
        return "sh" . $code;
    }
    return $code;
}

7、把stdClass Object 转成数组array

function object2array($array)
{
    if (is_object($array)) {
        $array = (array)$array;
    }
    if (is_array($array)) {
        foreach ($array as $key => $value) {
            $array[$key] = $this->object2array($value);
        }
    }
    return $array;
}

需要 二次开发、安装部署的,可以QQ扫一扫:

在这里插入图片描述

  • 35
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值