项目中用到计划任务,而且是在windows下跑,查了很多资料,终于被我搞定了。
1.首先创建bat文件,内容如下:
代码:
set file=”D:/www/weizhongchou_app/logs/%date:~0,4%_%date:~5,2%_%date:~8,2%.log”;
php.exe D:/www/weizhongchou_app/weilicai/new_cli/index.php timer/income >>%file%
注:
1.file变量 是根据当前日期生成的日志文件,用于记录跑p执行的结果
2.php.exe 因为在电脑上配置了环境变量可以直接用,如没有配置,请写上全路径
3.timer/income 是url 参数,和url 之间用空格隔开
2.thinkphp 主入口配置,内容如下:
具体代码:
<?php
#打开输出控制缓冲 防止session报错
ob_start();
$depr = ‘/’;
#获取dos|bat中 url的参数
$path = isset($_SERVER[‘argv’][1])?$_SERVER[‘argv’][1]:”;
#把url参数根据项目的url规则 生成GET值
if(!emptyempty($path)) {
$params = explode($depr,trim($path,$depr));
}
!emptyempty($params)?$_GET[‘m’]=array_shift($params):””;
!emptyempty($params)?$_GET[‘a’]=array_shift($params):””;
#把url其他参数生成对应的键值对
if(count($params)>1) {
// 解析剩余参数 并采用GET方式获取
preg_replace(‘@(\w+),([^,\/]+)@e’, ‘$_GET[\’\\1\‘]=”\\2″;’, implode(‘,’,$params));
}
#设置项目编码
header(“content-type:text/html;charset=utf-8”);
#获取入口文件的绝对定位
defined(‘ROOT_PATH’) or define(‘ROOT_PATH’, dirname(__FILE__));
#开启thinkphp cli模式
define(‘MODE_NAME’,‘cli’);//必须是cli,采用CLI运行模式运行
#定义thinkphp基类 目录地址
define(‘THINK_PATH’, ROOT_PATH.‘/../Core/’);
#定义业务项目文件目录名
define(‘APP_NAME’,‘new_cli’);
#定义业务项目的路口
define(‘APP_PATH’,ROOT_PATH.‘./../new_cli/’);
#定义业务项目的根目录 根据业务需求 可以不定义
define(‘APP_URL’,ROOT_PATH.‘/../’);
#开启用户自定义回话存储函数 用于把session 存储于数据库 根据需求可以不配置
ini_set(“session.save_handler”, “user”);
#加载项目基类
require THINK_PATH.‘ThinkPHP.php’;
转载请注明:cooljun小窝 » 对ThinkPHP Cli模式各种问题的灵活处理