php popen 异步处理脚本文件
后面& 必须要加,表示异步处理,否则将同步处理
pclose(popen("php /www/wwwroot/wechat.energy-sink.com/cli.php cli/index/index & ", 'r'));
参数
php /www/wwwroot/wechat.energy-sink.com/cli.php cli/index/index/参数1/值1
异步给所有用户发送模板消息案例
<?php
namespace app\cli\controller;
use think\Db;
use think\Request;
class Index
{
public function index()
{
if (Request::instance()->isCli()){
trace('命令行进入','info');
trace('参数列表','info');
$param=Request::instance()->param();
trace($param,'info');
$course=Db::name('notice')->find($param['id']);
if(!empty($course)){
$this->sendwechatmsg($course,1);
}
//
}
//return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_bd568ce7058a1091"></thinkad>';
}
function sendwechatmsg($info=array('title'=>'test','id'=>1),$page=1){
//echo 2;die;
$wechat = new \clt\WchatOauth(); // 微信公众号相关类
$c=1;
//mubanid 1lXV1I2QA689tsf7s7VWzNSx1ZAkwMAzn99LTotfzYE
$openids="o5WiI1OO-zoC5y2xqBW4EZvmGzxo,o5WiI1JfoBLAlB8W4nW9cM4q6fr0";
//le
$openids="o5WiI1JfoBLAlB8W4nW9cM4q6fr0";
//->where("openid","in",$openids)
$allfans=Db::name('member')->field("openid,nickname")->limit(($page-1)*$c,$c)->select();
trace('发送模板消息方法','info');
//模板消息数据组合
$msg_data=array(
'template_id'=>'1lXV1I2QA689tsf7s7VWzNSx1ZAkwMAzn99LTotfzYE',
'url'=>"http://wechat.energy-sink.com/home/pay/courseDetail.html?id=".$info['id']
//'data'=>$data
);
foreach ($allfans as $k=>$v){
$msg_data['touser']=$v['openid'];
$data=array(
'first'=>array('value'=>'你好,有新的课程已经增加,可前往报名'),
'keyword1'=>array('value'=>$info['title']),
'keyword2'=>array('value'=>$v['nickname']),
'remark'=>array('value'=>'感谢您的使用')
);
// $msg_data['data']['keyword2']['value']=$v['nickname'];
$msg_data['data']=$data;
trace('给'.$v['nickname'].'发送消息');
$res=$wechat->send_template_message(json_encode($msg_data));
trace('发送结果','info');
trace($res,'info');
//Log::info('发送结果');
//Log::info($res);
}
if(!empty($allfans)){
//trace('进入下一次查询','info');
$page++;
//trace($page,'info');
$this->sendwechatmsg($info,$page);
}else{
trace('本次模板消息发送完毕','info');
}
}
}
调用此方法
pclose(popen("php /www/wwwroot/wechat.energy-sink.com/cli.php cli/index/index/id/".$id." & ", 'r'));
上一篇: thinkphp cli模式记录...