对ThinkPHP Cli模式各种问题的灵活处理

PHP cooljun 2715℃ 0评论

    项目中用到计划任务,而且是在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模式各种问题的灵活处理

如果你觉得这篇文章对你有帮助,请支持我继续更新网站 !捐赠本站
喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!