1.可以按照Ci官方文件的指导来进行操作

让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码:

<?php
class Tools extends CI_Controller { public function message($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
}
}

然后将文件保存到 application/controllers/ 目录下。

现在你可以通过类似下面的 URL 来访问它:

example.com/index.php/tools/message/to

或者,我们可以通过 CLI 来访问。在 Mac/Linux 下你可以打开一个终端,在 Windows 下你可以打开 “运行”,然后输入 "cmd",进入 CodeIgniter 项目所在的目录。

$ cd /path/to/project;
$ php index.php tools message

如果你操作正确,你应该会看到 Hello World!

$ php index.php tools message "John Smith"

这里我们传一个参数给它,这和使用 URL 参数是一样的。"John Smith" 被作为参数传入并显示出:

Hello John Smith!

2.需要注意以下情况可能导致执行或者输出内容失败

首先要检查下CI框架中的配置文件config.php中的参数如下:

/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string. The default setting of 'REQUEST_URI' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'REQUEST_URI' Uses $_SERVER['REQUEST_URI']
| 'QUERY_STRING' Uses $_SERVER['QUERY_STRING']
| 'PATH_INFO' Uses $_SERVER['PATH_INFO']
|
| WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*/
//$config['uri_protocol'] = 'REQUEST_URI';
$config['uri_protocol'] = 'AUTO';

$config['uri_protocol'] 参数设置为‘REQUEST_URI’,将会导致命令行执行失败。

若所在项目中有url权限控制,记得把要执行文件的路径放到白名单中。

在Windows下环境执行,需要配置php的环境变量

/*
* windows下cmd执行操作
* 当前CI框架的入口文件index.php所在目录 D:\workspace\network\trunk\public
* index.php 为入口文件
* crontab文件夹处在application/controllers下面,已加入白名单
* tools为crontab下面的文件,message为tools.php中的方法,
* tom1112为传入的变量值
*/ D:\workspace\network\trunk\public>php index.php crontab/tools message/tom1112 /*输出*/
Hello tom1112!

CI 框架下执行CLI(命令行)的更多相关文章

  1. 在CI框架下执行存储的方法

    我直接把代码摆在这里分享哈 <?php /** * * Created by JetBrains PhpStorm. * User: lsl * Date: 14-1-8 * Time: 下午2 ...

  2. aix rksh 执行CLI命令行限制

    su padmin -C "lsdev -dev hdisk9 -attr| grep unique_id"rksh: lsdev: 0403-006 Execute permis ...

  3. mysq在命令行模式下执行shell命令

    mysql可以在命令行模式下执行shell命令 mysql> help For information about MySQL products and services, visit: htt ...

  4. PHP的CLI命令行运行模式浅析

    在做开发的时候,我们不仅仅只是做各种网站或者接口,也经常需要写一些命令行脚本用来处理一些后端的事务.比如对数据进行处理统计等.当然也是为了效率着想,当一个事务有可能会有较长的耗时时,往往会交由服务器的 ...

  5. golang常用库:cli命令行/应用程序生成工具-cobra使用

    golang常用库:cli命令行/应用程序生成工具-cobra使用 一.Cobra 介绍 我前面有一篇文章介绍了配置文件解析库 Viper 的使用,这篇介绍 Cobra 的使用,你猜的没错,这 2 个 ...

  6. 在Windows下使用svn命令行教程及svn命令行的解释

    本文转载自:https://blog.csdn.net/yangxiao2shi/article/details/50719286/ 以前在公司一直使用git,现在的公司改用svn,一时间还真的不知道 ...

  7. svn使用规范、在Windows下使用svn命令行工具、svn命令行的解释

    以前在公司一直使用git,现在公司有用svn,一时间还真的不知道如何下手,在网上搜寻了很多大神和官网文档的指导,总结了下面一份教程,希望能够帮助大家快速上手,如果想更细致的了解相关内容,可以点击每个小 ...

  8. Windows下的cmd命令行中设置环境编码

    我们都知道,Windows下的cmd命令行默认编码是Windows系统的编码,就是ANSI编码或者说是GBK编码的,这样我们编写的很多应用比如php编写utf-8编码的应用在命令行下面运行时都会出现乱 ...

  9. python:执行一个命令行N次

    经常希望可以执行一个命令行N次...windows下没有现成的工具(有?推荐给我!) 用python写一个... #!/usr/bin/evn python #coding: utf-8 " ...

随机推荐

  1. C# 反编译工具

    justdecompile http://down.51cto.com/data/2067031 ILSpy http://www.fishlee.net/soft/ilspy_chs/

  2. Tomcat Https配置

    一.生成KeyStore 打开命令行,输入:keytool -genkey -alias tomcat_server -keyalg RSA -storepass jimmypwd -validity ...

  3. oracle字符串处理函数

    1.LOWER(string) 将输入的字符串转换成小写: 2.UPPER(string) 将输入的字符串转换成大写: 3.INITCAP(string) 将输入的字符串单词的首字母转换成大写(如果不 ...

  4. Android SDK Manager 下载SDK失败的解决办法

    摘要:本文记录了无法使用Android SDK  Manager下载SDK开发包的解决办法. 最近需要进行android应用程序的开发工作,在android官网下载了adt-bundle-linux- ...

  5. PJISP 修改 消息头Fromto字段

    项目需求,需要修改sip信令消息头中Fromto字段,完成此功能需要修改sip库(PJSIP)源码,具体如下: PJSIP 消息头 Formto  字段默认的格式是sip:平台@平台IP地址,例如si ...

  6. maven依赖json-lib失败

    © 版权声明:本文为博主原创文章,转载请注明出处 项目中需要使用到JSONArray,因此到将json-lib的依赖加入pom.xml中,但是一直下载失败 <dependency> < ...

  7. 第二章:核心C#

    变量 如果在一条语句中声明和初始化了多个变量,那么所有的变量都具有相同的数据类型 Int x=10,y=20: 变量使用前需要赋初始值 声明不同类型的变量需要单独的语句. 变量的初始化 变量时类或者结 ...

  8. 隐藏VS2013的反馈、通知和登录按钮

    Visual Studio 2013的右上角有反馈.通知.登录.快速启动等按钮,在VS2013中没有选项可以设置为隐藏. 打开注册表(开始 -> 运行 -> regedit),展开到以下路 ...

  9. [转]const指针与指向const的指针

    经常忘记,保存一下.. #include <iostream> using namespace std; int main(int argc, char *argv[]) { ; int ...

  10. maven 常用的环境插件

    <build> <finalName>yycgproject</finalName> <plugins> <!-- 修改jdk插件 --> ...