什么是CLI:

CLI (命令行界面)是一种基于文本的和计算机交互的方式。 更多信息, 请查看 维基百科 。

为什么使用CLI?

虽然不是很明显,但是有很多情况下我们需要使用命令行来运行 CodeIgniter。

  • 使用 cron 定时运行任务,而不需要使用 wget 或 curl
  • 通过函数 is_cli() 的返回值来让你的 cron 页面不能通过 URL 访问到
  • 制作交互式的任务,例如:设置权限,清除缓存,备份等等
  • 与其他语言进行集成,例如可以通过 C++ 调用一条指令来运行你模型中的代码。

例子:

让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 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!

CI框架 -- CLI执行php代码的更多相关文章

  1. CI 框架下执行CLI(命令行)

    1.可以按照Ci官方文件的指导来进行操作 让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码: <?php class Tools e ...

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

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

  3. CI框架源代码阅读笔记2 一切的入口 index.php

    上一节(CI框架源代码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程.这里再次贴出流程图.以备參考: 作为CI框架的入口文件.源代码阅读,自然由此開始. 在源代码阅读的 ...

  4. [2012-4-10]ThinkPHP框架被爆任意代码执行漏洞(preg_replace)

    昨日(2012.04.09)ThinkPHP框架被爆出了一个php代码任意执行漏洞,黑客只需提交一段特殊的URL就可以在网站上执行恶意代码. ThinkPHP作为国内使用比较广泛的老牌PHP MVC框 ...

  5. Spring框架的反序列化远程代码执行漏洞分析(转)

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  6. 直接命令行中执行PHP代码(PHP CLI模式)

    一般执行PHP代码,需要把PHP代码写成一个文件,但是有时候查一些PHP配置没有这个必要,能不能直接执行PHP代码呢? 答案是可以的. 在命令行下,采用CLI方式执行PHP代码,这里列出几个常用的命令 ...

  7. Combine 框架,从0到1 —— 4.在 Combine 中执行异步代码

    本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 4.在 Combine 中执行异步代码. 内容概览 前言 用 Future 取代回调闭包 用输出类型( ...

  8. CI框架源码阅读笔记2 一切的入口 index.php

    上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里再次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中, ...

  9. CI框架源码学习笔记2——Common.php

    上一节我们最后说到了CodeIgniter.php,可是这一节的标题是Common.php,有的朋友可能会觉得很奇怪.事实上,CodeIgniter.php其实包含了ci框架启动的整个流程. 里面引入 ...

随机推荐

  1. ksoap2调用webservice传递参数丢失

    参数有顺序要求,顺序设置正确即可.

  2. kindeditor自定义插件插入视频代码

    kindeditor自定义插件插入视频代码 1.添加插件js 目录:/kindeditor/plugins/diy_video/diy_video.js KindEditor.plugin('diy_ ...

  3. 泛微OA e-cology8 数据库链接

    数据库恢复 数据库恢复的恢复请按照如下步骤进行: Ø 重新安装对应版本的数据库服务软件 Ø 通过数据库软件本身的还原工具还原备份数据库文件 Sqlserver可以通过企业管理器直接还原备份文件或者附加 ...

  4. ASP.NET学习笔记(6)——jQuery的Ajax基本操作

    说明(2017-11-5 15:49:29): 1. jQuery里封装了三个方法,$.get,$.post和$.ajax,其中$.ajax是返回原生的XMLHttpRequest对象,一般只用前两个 ...

  5. C# ASP.NET B/S模式下,采用lock语法 实现多用户并发产生不重复递增单号的一种解决方法技术参考

    有时候也好奇,若是老外发个技术文章,会不会到处是有人骂街的?进行人身攻击的?中国人喜欢打击别人,不知道老外是不是也是这个性格?好奇的问一下大家. 往往我们在开发程序.调试程序时,无法模拟多用户同时操作 ...

  6. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载:http://blog.csdn.net/u013263917/article/details/73038519 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARK ...

  7. [转]java中参数" ..."的用法和意思

    原文地址:https://blog.csdn.net/lycit/article/details/78809625 如这个jdbc中封装的绑定参数的方法: /** * 绑定参数 * @param ps ...

  8. centos7永久更改主机名

    操作环境: [root@bogon ~]# uname -a Linux #localhost.localdomain 3.10.0-514.el7.centos.plus.i686 #1 SMP W ...

  9. [serial]基于select/poll/epoll的串口操作

    转自:http://www.cnblogs.com/darryo/p/selectpollepoll-on-serial-port.html In this article, I will use t ...

  10. centos7安装elasticsearch5.2.2

    这篇文章比较初级,介绍的是centos7下elasticsearch的安装. 主要阅读对象是初级运维.初级大数据工程师.java工程师.想了解es的.net工程师以及所有感兴趣的朋友. 文章的目的是为 ...