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 相关文章推荐
php获得当前的脚本网址
Dec 10 PHP
php 操作符与控制结构
Mar 07 PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 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
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
python调用其他文件函数或类的示例
2019/07/16 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
日语专业推荐信
2013/11/12 职场文书
高中运动会广播稿
2014/01/21 职场文书
创业计划书撰写原则
2014/01/25 职场文书
应聘教师求职信
2014/07/19 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
爱护公物主题班会
2015/08/17 职场文书
Python基本知识点总结
2022/04/07 Python