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运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
php实现的Cookies操作类实例
Sep 24 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
php实现json编码的方法
Jul 30 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
May 29 PHP
Laravel程序架构设计思路之使用动作类
Jun 07 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 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导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
自己的js工具 Event封装
2009/08/21 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
python支持断点续传的多线程下载示例
2014/01/16 Python
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
编写strcpy函数
2014/06/24 面试题
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
2015年超市工作总结
2015/04/09 职场文书
小学教师党员承诺书
2015/04/27 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python