input162DayKQfq.class.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * @author:王刚涛
  4. * 用于获取当天各种指数
  5. * http://hq.sinajs.cn/list=s_sz000002
  6. */
  7. class Input162DayKQfq
  8. {
  9. /****
  10. * @param $code
  11. * @return string
  12. * 返回股票指数所属的板块,在股票代码前拼接0或者1
  13. */
  14. static public function stock_block($code)
  15. {
  16. $f = substr($code, 0, 1);
  17. if ($f == "6") {
  18. $stock_code = "0" . $code;
  19. } else {
  20. $stock_code = "1" . $code;
  21. }
  22. return $stock_code;
  23. }
  24. /****
  25. * @param $url
  26. * @return array|bool|string
  27. * 对curl_setopt进行封装,消除代码冗余
  28. */
  29. static private function curl_get_data($url)
  30. {
  31. //构建所要发送的url
  32. $curlHandle = curl_init();
  33. curl_setopt($curlHandle, CURLOPT_ENCODING, "");//这个接口的数据被压缩,所以要解压
  34. curl_setopt( $curlHandle , CURLOPT_URL, $url );
  35. curl_setopt( $curlHandle , CURLOPT_RETURNTRANSFER, 1 );
  36. curl_setopt( $curlHandle , CURLOPT_SSL_VERIFYPEER, false);
  37. curl_setopt( $curlHandle , CURLOPT_SSL_VERIFYHOST, false);
  38. curl_setopt( $curlHandle , CURLOPT_TIMEOUT, 10 );
  39. $content2 = curl_exec($curlHandle);
  40. curl_close( $curlHandle );
  41. $content3 = json_decode($content2);
  42. $content4 =$content3->data;
  43. return $content4;
  44. }
  45. static public function get_day_k_qfq($code, $year)
  46. {
  47. $msg = array();
  48. $stock_code = self::stock_block($code);
  49. $url = "http://img1.money.126.net/data/hs/klinederc/day/history/" . $year . "/" . $stock_code . ".json";
  50. //构建所要发送的url
  51. $data = self::curl_get_data($url);
  52. $stock_info=Stock::getInfoByCode($code);
  53. for ($i = 0; $i < count($data); $i++) {
  54. $d = $data[$i];
  55. $time = strtotime($d[0]);
  56. $a['timestamp'] = $time;
  57. $a['date'] = (int)$d[0];
  58. $a['code'] = $code;
  59. $a['name'] = $stock_info["name"];
  60. $a['open_price'] = floatval($d[1]);
  61. $a['close_price'] = floatval($d[2]);
  62. $a['highest_price'] = floatval($d[3]);
  63. $a['lowest_price'] = floatval($d[4]);
  64. $a['amount'] = (int)$d[5];
  65. // $a['turnover'] =floatval($d[6]);
  66. $a['turnover'] =empty(floatval($d[6]))?"0.00":floatval($d[6]);
  67. Day_k_qfq::addOrUpdateByCode($a);
  68. }
  69. return $msg;
  70. }
  71. }
  72. ?>