| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- /**
- * Created by PhpStorm.
- * User: 王刚涛
- * Date: 2020/11/29
- * Time: 18:51
- */
- class FinanceTencent
- {
- /****
- * @param $code
- * @return string
- * 判断股票的类型,属于创业板,科创板,主板,$code
- */
- static public function stock_block($code)
- {
- if (strncmp($code, "30", 2) == 0) {
- //创业板
- $code = "sz" . $code;
- } else if (strncmp($code, "68", 2) == 0) {
- //科创板
- $code = "sh" . $code;
- } else if (strncmp($code, "60", 2) == 0) {
- //主板
- $code = "sh" . $code;
- } else if (strncmp($code, "00", 2) == 0) {
- //中小板
- $code = "sz" . $code;
- }
- return $code;
- }
- /****
- * @param $url
- * @return array|bool|string
- * 对curl_setopt进行封装,消除代码冗余
- */
- static private function curl_get_data($url)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $content = curl_exec($ch);
- curl_close($ch);
- $content1 = substr($content, stripos($content, "=\"") + 2); //获取 var hq_str_sz000002="万 科A,30.780,30.800,30.510, ="之后部分
- $content2 = explode("~", iconv("gbk", "utf-8", $content1));//以换行符进行分割字符串
- return $content2;
- }
- /***
- * @param $stock_code
- * @return mixed
- * 获取股票的基本静态数据,
- */
- static public function get_stock_data($stock_code)
- {
- $data=array();
- $code = self::stock_block($stock_code);
- $url = "http://qt.gtimg.cn/q=" . $code;
- //市盈率,流通市值,总市值,市净率
- $content1 = self::curl_get_data($url);
- // 解析返回的历史数据
- if (!empty($content1)) {
- $data["pe_ttm"] = floatval($content1[39]);//pe_ttm市盈率
- $data["tradable_value"] = floatval($content1[44]*100000000);//流通市值
- $data["total_value"] = floatval($content1[45]*100000000);//总市值
- $data["pb"] = floatval($content1[46]);//市净率
- $data["pe_dynamic"] = floatval($content1[52]);//动态市盈率
- $data["pe_static"] = floatval($content1[53]);//静态市盈率
- }
- return Stock::updateByCode($stock_code,$data);
- }
- }
|