|
|
@@ -0,0 +1,77 @@
|
|
|
+<?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_static"] = floatval($content1[39]);//市盈率
|
|
|
+ $data["tradable_value"] = floatval($content1[44]);//流通市值
|
|
|
+ $data["total_value"] = floatval($content1[45]);//总市值
|
|
|
+ $data["pb"] = floatval($content1[46]);//市净率
|
|
|
+ }
|
|
|
+ return Stock::update($stock_code,$data);
|
|
|
+ }
|
|
|
+}
|