linux定時任務php
要實現的功能是,天天獲取一次滬深指數,滬深指數採用聚合數據(免費會員1000/天)linux
話很少說,上代碼啦web
先封裝個curl請求數據庫
public static function curl($url, $data = '', $raw = false)json
{ $ch = curl_init(); $params[CURLOPT_URL] = $url; //請求url地址 $params[CURLOPT_HEADER] = false; //是否返回響應頭信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_TIMEOUT] = 30; //超時時間 if (!empty($data)) { $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = $data; } $params[CURLOPT_SSL_VERIFYPEER] = false; $params[CURLOPT_SSL_VERIFYHOST] = false; curl_setopt_array($ch, $params); //傳入curl參數 $content = curl_exec($ch); curl_close($ch); if ($content && !$raw) { return json_decode($content, true); } return $content; }
請求接口獲取數據,存進數據庫,天天更新框架
public function actionHsData()
{yii
$key = '填寫你本身的key'; $data_h = CurlTools::curl('http://web.juhe.cn:8080/finance/stock/hs?type=0&key='.$key); if($data_h['error_code'] == 0){ $info = json_encode($data_h['result']); $model = KvStore::find()->where(['key'=>'上證指數'])->one(); if($model){ $model->value = $info; $model->create_at = time(); $model->save(); }else{ $model = new KvStore(); $model->create_at = time(); $model->key = '上證指數'; $model->value = $info; $model->save(); } } $data_s = CurlTools::curl('http://web.juhe.cn:8080/finance/stock/hs?type=1&key='.$key); if($data_s['error_code'] == 0){ $info = json_encode($data_s['result']); $model = KvStore::find()->where(['key'=>'深證指數'])->one(); if($model){ $model->value = $info; $model->create_at = time(); $model->save(); }else{ $model = new KvStore(); $model->create_at = time(); $model->key = '深證指數'; $model->value = $info; $model->save(); } }
}
找到你的php安裝目錄,我使用的是yii框架,因此須要找到yii的位置,Auto是控制器,HsData是方法名curl
以前有人問我,爲何自動確認收貨不使用crontab,此次就來了url
若是你以爲這篇文章還不錯,下角點個贊,是對我開源最大的鼓勵spa