|
|
@@ -23,11 +23,254 @@ class Finance163
|
|
|
}
|
|
|
return $stock_code;
|
|
|
}
|
|
|
+ /****
|
|
|
+ * @param $url
|
|
|
+ * @return array|bool|string
|
|
|
+ * 对curl_setopt进行封装,消除代码冗余
|
|
|
+ */
|
|
|
+ static private function curl_get_data($url){
|
|
|
+ $curlHandle = curl_init();
|
|
|
+ curl_setopt($curlHandle, CURLOPT_URL, $url);
|
|
|
+ curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
|
|
|
+ curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
+ curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, false);
|
|
|
+ curl_setopt($curlHandle, CURLOPT_TIMEOUT, 10);
|
|
|
+ $content = curl_exec($curlHandle);
|
|
|
+ curl_close($curlHandle);
|
|
|
+ $content1 = explode("\n", $content);//以换行符进行分割字符串
|
|
|
+ return $content1;
|
|
|
+ }
|
|
|
+
|
|
|
+ static public function get_history_index_csi300($stock_code,$start_date,$end_date)
|
|
|
+ {
|
|
|
+ $code = self::stock_block($stock_code);
|
|
|
+ $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code . "&start=" . $start_date . "&end=" . $end_date . "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;CHG;PCHG";
|
|
|
+ //构建所要发送的url
|
|
|
+ $content1=Finance163::curl_get_data($url);
|
|
|
+ if (!empty($content1[1])) {
|
|
|
+ for ($i = count($content1) - 1; $i >0; $i--) {//排除日期,代码等标题栏
|
|
|
+ if (!empty($content1[$i])) {
|
|
|
+ $content3 = explode(",", iconv("gbk", "utf-8", $content1[$i]));
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+// 解析返回的历史数据
|
|
|
+ $data['date'] = strtotime($content3[0]);//用于创建表
|
|
|
+ $data['code'] = intval(explode("'",$content3[1])[1]);
|
|
|
+ $data['open_price'] = floatval($content3[3]);
|
|
|
+ $data['hightest_price'] = floatval($content3[4]);
|
|
|
+ $data['lowest_price'] = floatval($content3[5]);
|
|
|
+ $data['close_price'] = floatval($content3[6]);
|
|
|
+ $data['value'] = floatval($content3[7]);
|
|
|
+ $data['amount'] = floatval($content3[8]);
|
|
|
+ $data['increase_price'] = floatval($content3[9]);
|
|
|
+ $data['increase_value'] = floatval($content3[10]);
|
|
|
+ //将所要存储的数据放入一个数组中
|
|
|
+ $stock_name = $content3[1];
|
|
|
+ if ($data['close_price'] == 0) {//当收盘价为0的时候,表示此时的基于9-3点,所以不存储
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!empty($data)) {
|
|
|
+ $msg= Index_csi300::insert($data);//将这支股票的历史数据存入数据库
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
+
|
|
|
+ static public function get_history_index_gem($stock_code,$start_date,$end_date)
|
|
|
+ {
|
|
|
+ $code = self::stock_block($stock_code);
|
|
|
+ $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code . "&start=" . $start_date . "&end=" . $end_date . "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;CHG;PCHG";
|
|
|
+ //构建所要发送的url
|
|
|
+ $content1=Finance163::curl_get_data($url);
|
|
|
+ if (!empty($content1[1])) {
|
|
|
+ for ($i = count($content1) - 1; $i >0; $i--) {//排除日期,代码等标题栏
|
|
|
+ if (!empty($content1[$i])) {
|
|
|
+ $content3 = explode(",", iconv("gbk", "utf-8", $content1[$i]));
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+// 解析返回的历史数据
|
|
|
+ $data['date'] = strtotime($content3[0]);//用于创建表
|
|
|
+ $data['code'] = intval(explode("'",$content3[1])[1]);
|
|
|
+ $data['open_price'] = floatval($content3[3]);
|
|
|
+ $data['hightest_price'] = floatval($content3[4]);
|
|
|
+ $data['lowest_price'] = floatval($content3[5]);
|
|
|
+ $data['close_price'] = floatval($content3[6]);
|
|
|
+ $data['value'] = floatval($content3[7]);
|
|
|
+ $data['amount'] = floatval($content3[8]);
|
|
|
+ $data['increase_price'] = floatval($content3[9]);
|
|
|
+ $data['increase_value'] = floatval($content3[10]);
|
|
|
+ //将所要存储的数据放入一个数组中
|
|
|
+ $stock_name = $content3[1];
|
|
|
+ if ($data['close_price'] == 0) {//当收盘价为0的时候,表示此时的基于9-3点,所以不存储
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!empty($data)) {
|
|
|
+ $msg= Index_gem::insert($data);//将这支股票的历史数据存入数据库
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
+ static public function get_history_index_kc50($stock_code,$start_date,$end_date)
|
|
|
+ {
|
|
|
+ $code = self::stock_block($stock_code);
|
|
|
+ $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code . "&start=" . $start_date . "&end=" . $end_date . "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;CHG;PCHG";
|
|
|
+ //构建所要发送的url
|
|
|
+ $content1=Finance163::curl_get_data($url);
|
|
|
+ if (!empty($content1[1])) {
|
|
|
+ for ($i = count($content1) - 1; $i >0; $i--) {//排除日期,代码等标题栏
|
|
|
+ if (!empty($content1[$i])) {
|
|
|
+ $content3 = explode(",", iconv("gbk", "utf-8", $content1[$i]));
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+// 解析返回的历史数据
|
|
|
+ $data['date'] = strtotime($content3[0]);//用于创建表
|
|
|
+ $data['code'] = intval(explode("'",$content3[1])[1]);
|
|
|
+ $data['open_price'] = floatval($content3[3]);
|
|
|
+ $data['hightest_price'] = floatval($content3[4]);
|
|
|
+ $data['lowest_price'] = floatval($content3[5]);
|
|
|
+ $data['close_price'] = floatval($content3[6]);
|
|
|
+ $data['value'] = floatval($content3[7]);
|
|
|
+ $data['amount'] = floatval($content3[8]);
|
|
|
+ $data['increase_price'] = floatval($content3[9]);
|
|
|
+ $data['increase_value'] = floatval($content3[10]);
|
|
|
+ //将所要存储的数据放入一个数组中
|
|
|
+ $stock_name = $content3[1];
|
|
|
+ if ($data['close_price'] == 0) {//当收盘价为0的时候,表示此时的基于9-3点,所以不存储
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!empty($data)) {
|
|
|
+ $msg= Index_kc50::insert($data);//将这支股票的历史数据存入数据库
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
+ static public function get_history_index_scz($stock_code,$start_date,$end_date)
|
|
|
+ {
|
|
|
+ $code = self::stock_block($stock_code);
|
|
|
+ $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code . "&start=" . $start_date . "&end=" . $end_date . "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;CHG;PCHG";
|
|
|
+ //构建所要发送的url
|
|
|
+ $content1=Finance163::curl_get_data($url);
|
|
|
+ if (!empty($content1[1])) {
|
|
|
+ for ($i = count($content1) - 1; $i >0; $i--) {//排除日期,代码等标题栏
|
|
|
+ if (!empty($content1[$i])) {
|
|
|
+ $content3 = explode(",", iconv("gbk", "utf-8", $content1[$i]));
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+// 解析返回的历史数据
|
|
|
+ $data['date'] = strtotime($content3[0]);//用于创建表
|
|
|
+ $data['code'] = intval(explode("'",$content3[1])[1]);
|
|
|
+ $data['open_price'] = floatval($content3[3]);
|
|
|
+ $data['hightest_price'] = floatval($content3[4]);
|
|
|
+ $data['lowest_price'] = floatval($content3[5]);
|
|
|
+ $data['close_price'] = floatval($content3[6]);
|
|
|
+ $data['value'] = floatval($content3[7]);
|
|
|
+ $data['amount'] = floatval($content3[8]);
|
|
|
+ $data['increase_price'] = floatval($content3[9]);
|
|
|
+ $data['increase_value'] = floatval($content3[10]);
|
|
|
+ //将所要存储的数据放入一个数组中
|
|
|
+ $stock_name = $content3[1];
|
|
|
+ if ($data['close_price'] == 0) {//当收盘价为0的时候,表示此时的基于9-3点,所以不存储
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!empty($data)) {
|
|
|
+ $msg= Index_scz::insert($data);//将这支股票的历史数据存入数据库
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
+ static public function get_history_index_sh($stock_code,$start_date,$end_date)
|
|
|
+ {
|
|
|
+ $code = self::stock_block($stock_code);
|
|
|
+ $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code . "&start=" . $start_date . "&end=" . $end_date . "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;CHG;PCHG";
|
|
|
+ //构建所要发送的url
|
|
|
+ $content1=Finance163::curl_get_data($url);
|
|
|
+ if (!empty($content1[1])) {
|
|
|
+ for ($i = count($content1) - 1; $i >0; $i--) {//排除日期,代码等标题栏
|
|
|
+ if (!empty($content1[$i])) {
|
|
|
+ $content3 = explode(",", iconv("gbk", "utf-8", $content1[$i]));
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+// 解析返回的历史数据
|
|
|
+ $data['date'] = strtotime($content3[0]);//用于创建表
|
|
|
+ $data['code'] = intval(explode("'",$content3[1])[1]);
|
|
|
+ $data['open_price'] = floatval($content3[3]);
|
|
|
+ $data['hightest_price'] = floatval($content3[4]);
|
|
|
+ $data['lowest_price'] = floatval($content3[5]);
|
|
|
+ $data['close_price'] = floatval($content3[6]);
|
|
|
+ $data['value'] = floatval($content3[7]);
|
|
|
+ $data['amount'] = floatval($content3[8]);
|
|
|
+ $data['increase_price'] = floatval($content3[9]);
|
|
|
+ $data['increase_value'] = floatval($content3[10]);
|
|
|
+ //将所要存储的数据放入一个数组中
|
|
|
+ $stock_name = $content3[1];
|
|
|
+ if ($data['close_price'] == 0) {//当收盘价为0的时候,表示此时的基于9-3点,所以不存储
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!empty($data)) {
|
|
|
+ $msg= Index_sh::insert($data);//将这支股票的历史数据存入数据库
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
+ static public function get_history_index_sh50($stock_code,$start_date,$end_date)
|
|
|
+ {
|
|
|
+ $msg="";
|
|
|
+ $code = self::stock_block($stock_code);
|
|
|
+ $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code . "&start=" . $start_date . "&end=" . $end_date . "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;CHG;PCHG";
|
|
|
+ //构建所要发送的url
|
|
|
+ $content1=Finance163::curl_get_data($url);
|
|
|
+ if (!empty($content1[1])) {
|
|
|
+ for ($i = count($content1) - 1; $i >0; $i--) {//排除日期,代码等标题栏
|
|
|
+ if (!empty($content1[$i])) {
|
|
|
+ $content3 = explode(",", iconv("gbk", "utf-8", $content1[$i]));
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+// 解析返回的历史数据
|
|
|
+ $data['date'] = strtotime($content3[0]);//用于创建表
|
|
|
+ $data['code'] = intval(explode("'",$content3[1])[1]);
|
|
|
+ $data['open_price'] = floatval($content3[3]);
|
|
|
+ $data['hightest_price'] = floatval($content3[4]);
|
|
|
+ $data['lowest_price'] = floatval($content3[5]);
|
|
|
+ $data['close_price'] = floatval($content3[6]);
|
|
|
+ $data['value'] = floatval($content3[7]);
|
|
|
+ $data['amount'] = floatval($content3[8]);
|
|
|
+ $data['increase_price'] = floatval($content3[9]);
|
|
|
+ $data['increase_value'] = floatval($content3[10]);
|
|
|
+ //将所要存储的数据放入一个数组中
|
|
|
+ $stock_name = $content3[1];
|
|
|
+ if ($data['close_price'] == 0) {//当收盘价为0的时候,表示此时的基于9-3点,所以不存储
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!empty($data)) {
|
|
|
+ $msg= Index_sh50::insert($data);//将这支股票的历史数据存入数据库
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/***
|
|
|
* @param $code
|
|
|
* @return int
|
|
|
- * 获取历史交易数据
|
|
|
+ * 获取历史股票交易数据
|
|
|
*/
|
|
|
static public function get_history_trade_data($stock_code,$start_date,$end_date)
|
|
|
{
|