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 相关文章推荐
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
PHP开发微信支付的代码分享
May 25 PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 PHP
PHP微信支付开发实例
Jun 22 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php实现的http请求封装示例
Nov 08 PHP
php post json参数的传递和接收处理方法
May 31 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 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
服务器端解压缩zip的脚本
2006/12/22 PHP
php不写闭合标签的好处
2014/03/04 PHP
php树型类实例
2014/12/05 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python 文件管理实例详解
2015/11/10 Python
Python中标准模块importlib详解
2017/04/16 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
运动会跳远广播稿
2014/02/04 职场文书
更夫岗位责任制
2014/02/11 职场文书
低碳生活倡议书
2014/04/14 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
员工自我工作评价
2015/03/06 职场文书
外科护士长工作总结
2015/08/12 职场文书
基于Python实现将列表数据生成折线图
2022/03/23 Python