thinkphp 3.2的cli模式(命令行模式)(修改入口文件index.php保存为cli.php)

时间:2022-11-09 00:05:43

  使用tp3.2.3的cli模式时,报错。加上绝对路径还是报错。所以采用普通模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (version_compare(PHP_VERSION, '5.3.0' , '<' ))   die ( 'require PHP > 5.3.0 !' );
//普通模式,解决官方分组不支持cli的问题
$depr  '/' ;
$path    = isset( $_SERVER [ 'argv' ][1])? $_SERVER [ 'argv' ][1]: '' ;
if (! empty ( $path )) {
     $params  explode ( $depr ,trim( $path , $depr ));
}
! empty ( $params )? $_GET [ 'g' ]= array_shift ( $params ): "" ;
! empty ( $params )? $_GET [ 'm' ]= array_shift ( $params ): "" ;
! empty ( $params )? $_GET [ 'a' ]= array_shift ( $params ): "" ;
if ( count ( $params )>1) {
// 解析剩余参数 并采用GET方式获取
     preg_replace( '@(\w+),([^,\/]+)@e' '$_GET[\'\\1\']="\\2";' , implode( ',' , $params ));
}
 
//define('APP_MODE','cli');
define( 'APP_DEBUG' ,True);
define(  'APP_PATH' , dirname( __FILE__ ). '/Application/'  );
require  dirname( __FILE__ ). '/ThinkPHP/ThinkPHP.php' ;

  保存为cli.php 在根目录,跟index.php平级 

cli模式调用的时候,就用cli.php入口文件,比如定时任务 0 * * * * * php /www/cli.php home/article/get ,如果是web服务访问,则依然使用index.php文件  

/usr/bin/php /home/www/sc123_test/cli.php /home/task/trade