CI 框架下执行CLI(命令行)
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(命令行)的更多相关文章
- 在CI框架下执行存储的方法
我直接把代码摆在这里分享哈 <?php /** * * Created by JetBrains PhpStorm. * User: lsl * Date: 14-1-8 * Time: 下午2 ...
- aix rksh 执行CLI命令行限制
su padmin -C "lsdev -dev hdisk9 -attr| grep unique_id"rksh: lsdev: 0403-006 Execute permis ...
- mysq在命令行模式下执行shell命令
mysql可以在命令行模式下执行shell命令 mysql> help For information about MySQL products and services, visit: htt ...
- PHP的CLI命令行运行模式浅析
在做开发的时候,我们不仅仅只是做各种网站或者接口,也经常需要写一些命令行脚本用来处理一些后端的事务.比如对数据进行处理统计等.当然也是为了效率着想,当一个事务有可能会有较长的耗时时,往往会交由服务器的 ...
- golang常用库:cli命令行/应用程序生成工具-cobra使用
golang常用库:cli命令行/应用程序生成工具-cobra使用 一.Cobra 介绍 我前面有一篇文章介绍了配置文件解析库 Viper 的使用,这篇介绍 Cobra 的使用,你猜的没错,这 2 个 ...
- 在Windows下使用svn命令行教程及svn命令行的解释
本文转载自:https://blog.csdn.net/yangxiao2shi/article/details/50719286/ 以前在公司一直使用git,现在的公司改用svn,一时间还真的不知道 ...
- svn使用规范、在Windows下使用svn命令行工具、svn命令行的解释
以前在公司一直使用git,现在公司有用svn,一时间还真的不知道如何下手,在网上搜寻了很多大神和官网文档的指导,总结了下面一份教程,希望能够帮助大家快速上手,如果想更细致的了解相关内容,可以点击每个小 ...
- Windows下的cmd命令行中设置环境编码
我们都知道,Windows下的cmd命令行默认编码是Windows系统的编码,就是ANSI编码或者说是GBK编码的,这样我们编写的很多应用比如php编写utf-8编码的应用在命令行下面运行时都会出现乱 ...
- python:执行一个命令行N次
经常希望可以执行一个命令行N次...windows下没有现成的工具(有?推荐给我!) 用python写一个... #!/usr/bin/evn python #coding: utf-8 " ...
随机推荐
- Au cs6怎样才能导入和导出m4a或者就是aac格式的文件呢?
[求解]Au cs6怎样才能导入和导出m4a或者就是aac格式的文件呢? 汉化版;解决发法----首选项------常规------媒体与暂存盘-----动态链接媒体下面的启动DLMS格式 ...
- h5+ 管理设备信息
Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI.IMSI.型号.厂商等.通过plus.device获取设备信息管理对象. 1.属性 1.1.imei: 设备的国际移动设备身份码, ...
- linux ln 命令使用参数详解(ln -s 软链接)(转)
这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件. 当 我们需要在不同的 ...
- 【BZOJ4008】【HNOI2015】亚瑟王 概率DP
链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...
- 修改EXCEL
import xlrdfrom xlutils import copy # 先用xlrd模块,打开一个excelbook=xlrd.open_workbook('app_student.xls') # ...
- Android 下Service
1 http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html 2 http://blog.csdn.net/android_tutor/ ...
- 实现Tab功能
网上实现Tab功能的方法有很多,这里我使用Fragment的方法,我觉着比较简单易懂 MainActivity private android.app.FragmentManager fragment ...
- OSX: 命令行制作U盘Recovery HD
使用命令行操作,非常easy,可是操作不当非常危急! 免责声明:假设操作不当造成的数据丢失,本人概不负责. 为什么? 不是有OSX恢复磁盘助理嘛?是的.假设仅仅想使用GUI的软件.能够去苹果官方站点: ...
- 自定义Spring Shell
目录 概述 自定义内置命令 禁用内置命令 覆盖内置命令 自定义命令提示符 自定义命令行选项行为 自定义参数转换器 概述 官网:https://projects.spring.io/spring-she ...
- hibernate实现多变联合查询
Hibernate主要支持两种查询方式:HQL查询和Criteria查询.前者应用较为广发,后者也只是调用封装好的接口. 现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎么 ...