• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ThinkPHP3.1.2 使用cli命令行模式运行的方法

    前言

    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/

    注释掉Log.class.php

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

    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中通过getopt解析GNU C风格命令行选项
    • php web环境和命令行环境下查找php.ini的位置
    • php根据命令行参数生成配置文件详解
    • php命令行写shell实例详解
    • php命令行模式代码实例详解
    上一篇:Laravel 框架控制器 Controller原理与用法实例分析
    下一篇:php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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