ThinkPHP3.1.2 使用cli命令行模式运行的方法


Posted in PHP onApril 14, 2020

前言

thinkphp3.1.2 需要使用cli方法运行脚本
折腾了一天才搞定
3.1.2的版本真的很古老

解决

增加cli.php入口文件

define ('APP_NAME','App');
define ('APP_PATH','./App/');
define('APP_DEBUG', true);
define('MODE_NAME','cli');
require './Base/ThinkPHP.php';

注意目录名称:根据实际去改

cli.php文件增加解析模块、方法名、参数

if (!isset($argv[1]) || !isset($argv[2])) {
 exit("格式错误: php cli.php module action {id 1}" . PHP_EOL);
}
# 'URL_MODEL'=>0, 的格式
if ($argc > 3) {
 preg_replace('@(\w+),([^,\/]+)@e', '$_GET[\'\\1\']="\\2";', implode(',',array_slice($argv,3)));
}
$moduleName = $argv[1];
$actionName = $argv[2];
define('MODULE_NAME', $moduleName);
define('ACTION_NAME', $actionName);

下载thinkphp3.1.2 扩展包 【推荐使用】

http://www.thinkphp.cn/down/253.html

放到 /Base/Extend/

ThinkPHP3.1.2 使用cli命令行模式运行的方法

注释掉Log.class.php

ThinkPHP3.1.2 使用cli命令行模式运行的方法

扩展包解析命令行参数的逻辑

ThinkPHP3.1.2 使用cli命令行模式运行的方法

if(C('URL_MODEL')==1) {// PATHINFO 模式URL下面 采用 index.php module/action/id/4
  $depr = C('URL_PATHINFO_DEPR');
  $path = isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:'';
  if(!empty($path)) {
   $params = explode($depr,trim($path,$depr));
  }
  // 取得模块和操作名称
  define('MODULE_NAME', !empty($params)?array_shift($params):C('DEFAULT_MODULE'));
  define('ACTION_NAME', !empty($params)?array_shift($params):C('DEFAULT_ACTION'));
  if(count($params)>1) {
   // 解析剩余参数 并采用GET方式获取
   preg_replace('@(\w+),([^,\/]+)@e', '$_GET[\'\\1\']="\\2";', implode(',',$params));
  }
  }else{// 默认URL模式 采用 index.php module action id 4
  // 取得模块和操作名称
  define('MODULE_NAME', isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:C('DEFAULT_MODULE'));
  define('ACTION_NAME', isset($_SERVER['argv'][2])?$_SERVER['argv'][2]:C('DEFAULT_ACTION'));
  if($_SERVER['argc']>3) {
   // 解析剩余参数 并采用GET方式获取
   preg_replace('@(\w+),([^,\/]+)@e', '$_GET[\'\\1\']="\\2";', implode(',',array_slice($_SERVER['argv'],3)));
  }
  }

总结

到此这篇关于ThinkPHP3.1.2 使用cli命令行模式运行的文章就介绍到这了,更多相关ThinkPHP3.1.2 cli命令行模式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
第五节--克隆
Nov 16 PHP
php自动加载的两种实现方法
Jun 21 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
PHP数组相关函数汇总
Mar 24 PHP
php处理带有中文URL的方法
Jul 11 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 PHP
基于PHP实现用户在线状态检测
Nov 10 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 #PHP
Laravel 框架路由原理与路由访问实例分析
Apr 14 #PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 #PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 #PHP
PHP 自动加载类原理与用法实例分析
Apr 14 #PHP
php操作redis常见方法示例【key与value操作】
Apr 14 #PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 #PHP
You might like
详细介绍PHP应用提速面面观
2006/10/09 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
五四青年节优秀演讲稿范文
2014/05/28 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
趵突泉导游词
2015/02/03 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
Python list列表删除元素的4种方法
2021/11/01 Python