Le contenu de cet article concerne l'utilisation par thinkphp5 du minuteur Workerman pour explorer régulièrement les informations d'actualité d'un certain site. Le contenu est très détaillé. Les amis dans le besoin peuvent s'y référer.
<.>1. Installez d'abord Workererman via Composer. Il y a des instructions détaillées dans l'extension du manuel de développement complet de thinkphp5 - "coposer package -" Workererman :#在项目根目录执行以下指令 composer require topthink/think-worker
<?php define('APP_PATH', __DIR__ . '/application/'); define("BIND_MODULE", "server/Worker"); // 加载框架引导文件 require __DIR__ . '/thinkphp/start.php';
<?php namespace app\server\controller; use think\worker\Server; class Worker extends Server { public function onWorkerStart($work) { $handle=new Collection(); $handle->add_timer(); } }
<?php namespace app\server\controller; use app\common\model\ArticleModel; use think\Controller; use Workerman\Lib\Timer; class Collection extends Controller{ public function __construct(){ parent::__construct(); } public function add_timer(){ Timer::add(10, array($this, 'index'), array(), true);//时间间隔过小,运行会崩溃 } /** * 采集数据 */ public function index(){ $total=$this->get_jinse(); return json(['msg'=>"此次采集数据共 $total 条。",'total'=>$total]); } /** * 获取金色财经资讯 */ public function get_jinse(){ $url="https://api.jinse.com/v4/live/list?limit=20"; $data=$this->get_curl($url); $data=json_decode($data); $data=$data->list[0]->lives; $validate=validate('Article'); $items=[]; foreach ($data as $k=>$v){ preg_match('/【(.+?)】(.+)/u',$v->content,$content); if(!@$content[2]){ continue; } $list=array( 'source_id'=>$v->id, 'source'=>'金色财经', 'title'=>trim(preg_replace('/.*\|/','',$content[1])), 'content'=>$content[2], ); if($validate->check($list)){ $items[]=$list; } } if($items){ krsort($items); $model=new ArticleModel(); $model->saveAll($items); } return count($items); } public function get_curl($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $output = curl_exec($ch); if($output === FALSE ){ echo "CURL Error:".curl_error($ch); } curl_close($ch); // 4. 释放curl句柄 return $output; } }
Qu'est-ce que l'héritage de modèle dans Thinkphp ? Exemple d'héritage de modèle
Comment utiliser PHP pour vérifier le nom d'utilisateur et le mot de passe (code)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!