| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?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;
- // $url = "http://qt.gtimg.cn/q=" . "sh600270";
- //市盈率,流通市值,总市值,市净率
- $content1 = self::curl_get_data($url);
- // var_dump($content1);
- // 解析返回的历史数据
- if (!empty($content1)) {
- $data["pe_ttm"] = empty($content1[39])? 0 : $content1[39];//pe_ttm市盈率
- $data["tradable_value"] = empty($content1[44])? 0 : (int)$content1[44]*100000000;//流通市值
- $data["total_value"] = empty($content1[45])? 0 : (int)$content1[45]*100000000;//总市值
- $data["pb"] = empty($content1[46])? 0 : $content1[46];//市净率
- $data["pe_dynamic"] = empty($content1[52])? 0 : $content1[52]; //动态市盈率
- $data["pe_static"] = empty($content1[53])? 0 : $content1[53];//静态市盈率
- }
- // var_dump($data);
- $id=Stock::updateByCode($stock_code,$data);
- return $id;
- }
- }
|