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