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

什么是CLI: CLI (命令行界面)是一种基于文本的和计算机交互的方式. 更多信息, 请查看 维基百科 . 为什么使用CLI? 虽然不是很明显,但是有很多情况下我们需要使用命令行来运行 CodeIgniter. 使用 cron 定时运行任务,而不需要使用 wget 或 curl 通过函数 is_cli() 的返回值来让你的 cron 页面不能通过 URL 访问到 制作交互式的任务,例如:设置权限,清除缓存,备份等等 与其他语言进行集成,例如可以通过 C++ 调用一条指令来运行你模型中的代码.…
1.可以按照Ci官方文件的指导来进行操作 让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码: <?php class Tools extends CI_Controller { public function message($to = 'World') { echo "Hello {$to}!".PHP_EOL; } } 然后将文件保存到 application/controllers/ 目录下. 现在你可以通过类似…
我直接把代码摆在这里分享哈 <?php /** * * Created by JetBrains PhpStorm. * User: lsl * Date: 14-1-8 * Time: 下午2:55 * To change this template use File | Settings | File Templates. */ define("QUERY_KEY", 1); define("QUERY_INDEX", 2); define("Q…
上一节(CI框架源代码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程.这里再次贴出流程图.以备參考: 作为CI框架的入口文件.源代码阅读,自然由此開始. 在源代码阅读的过程中,我们并不会逐行进行解释.而仅仅解释核心的功能和实现. 1.       设置应用程序环境 define('ENVIRONMENT', 'development'); 这里的development能够是不论什么你喜欢的环境名称(比方dev,再如test).相相应的,你要在以下的switch c…
昨日(2012.04.09)ThinkPHP框架被爆出了一个php代码任意执行漏洞,黑客只需提交一段特殊的URL就可以在网站上执行恶意代码. ThinkPHP作为国内使用比较广泛的老牌PHP MVC框架,有不少创业公司或者项目都用了这个框架.不过大多数开发者和使用者并没有注意到本次漏洞的危害性,提醒:此漏洞是一个非常严重的问题,只要使用了thinkphp框架,就可以直接执行任意php代码,使用thinkphp框架的各位站长赶快对自己的网站进检测,并修复. 修复方法: 1.下载官方发布的补丁: h…
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://github.com/jiangxincode 知乎地址: https://www.zhihu.com/people/jiangxinnju 漏洞介绍 国外的研究人员zero thoughts发现了一个Spring框架的反序列化远程代码执行漏洞. spring-tx.jar包中的org.springf…
一般执行PHP代码,需要把PHP代码写成一个文件,但是有时候查一些PHP配置没有这个必要,能不能直接执行PHP代码呢? 答案是可以的. 在命令行下,采用CLI方式执行PHP代码,这里列出几个常用的命令. 1)执行PHP代码 php -r "phpinfo();"2)查看PHP版本(如果是-V参数,输出PHP的编译参数) php -v3)查看phpinfo配置php -i4)查看php加载的模块php -m…
本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 4.在 Combine 中执行异步代码. 内容概览 前言 用 Future 取代回调闭包 用输出类型(Output Types)代表 Future 的参数 用 Subject 取代重复执行的闭包 总结 前言 你的应用可能会使用一些常见的模式来处理异步事件,比如: 完成处理器(Completion handlers).它其实是调用方提供的一个闭包,当一个耗时任务完成后,这个闭包会被调用一次: 闭包属性…
上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里再次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现. 1.       设置应用程序环境 define('ENVIRONMENT', 'development'); 这里的development可以是任何你喜欢的环境名称(比如dev,再如test),相对应的,你要在下面的switch case代码块中…
上一节我们最后说到了CodeIgniter.php,可是这一节的标题是Common.php,有的朋友可能会觉得很奇怪.事实上,CodeIgniter.php其实包含了ci框架启动的整个流程. 里面引入了各种类文件,然后调用其中的方法,完成所有操作.我们先分析一下引入的各个文件,最后再看CodeIgniter.php,个人觉得这样学习起来更加清晰明了. 查看代码可以发现,其实引入的第一个文件是constants.php,文件里面都是定义一下常量,没什么可以说的,所以我们往下看,开始分析Common…
Index.php作为CI框架的入口文件,源码分析,自然而然由此开始.在源码分析的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现,如果英文水平很好的话,读过index.php文件的英文注释之后也就基本明白了inde.php都做了些什么.本来想第一篇写解析CI框架的目录结构的,像这一般网上一搜都是一大堆,也就放弃了这个想法.博主是基于CodeIgniter-v3.1.0最新版本进行解读分析.ok,书归正传,在博主看来CI框架的index.php文件一共完成了四项工作: ① 设置框架应用的…
    Ci框架中Hooks可以理解:在框架的执行流程过程中,允许开发者在固定的某些时间点上(如:调用控制器前,调用控制器后等时间点上),调用其他函数来扩充CI框架执行流程的一种方法.技术上来就是通过配置文件,调用其他函数执行:   1.CI框架Hooks使用:     1.1.修改application/config/config.php文件,enable_hooks默认为FLASE,改成TRUE…
一.下载CI框架并安装,这里放置一张自己的项目目录结构图 目录框架搭建好之后开始将自己的项目与框架融合 二.更改相关配置 1.用任何文本编辑器打开 application/config/config.php 去设置你的网站根 URL $config['base_url'] = 'http://localhost/项目所在文件夹名/' 2.打开 application/config/database.php 去设置你的数据库参数 $db['default']['username'] = '数据库用…
本篇并不是对某一组件的详细源码分析,而只是简单的跟踪了下CI的autoload的基本流程.因此,可以看做是Loader组件的分析前篇. CI框架中,允许你配置autoload数组,这样,在你的应用程序初始化时,会自动加载相应的类库,例如,在application/config/autoload.php中,autoload的配置如下: $autoload['libraries'] = array("smarty", "redis"); 则CI框架初始化时,会自动加载l…
CI框架允许你在不修改系统核心代码的基础上添加或者更改系统的核心功能(如重写缓存.输出等).例如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = TRUE;),通过添加特定的钩子,可以让系统在特定的时刻触发特定的脚本: $hook['post_system'] = array( 'class' => 'frameLog', 'function' => 'postLog', 'filename' => 'post_system.php'…
到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入口 ind…
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index…
最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时刻提醒自己:借鉴和学习才有出路,忘记过去意味着背叛! 基本术语说明 在本文开始之前,有必要对文中反复出现的术语做一个简单的说明,如果你对这一部分已经熟谙,完全可以略过.本文中反复出现和提及的术语包括: 前端控制器(Front Controller): 用于集中控制用户的所有请求的组件,将用户的请求发…
最近用CI框架遇到一个问题.2个前提条件: 1.数据库设计不规范,有的有表前缀(如:ck_table1),有的没有(如:table2)或者表前缀不一样: 2.数据库操作又想使用数据库操作语句querybuilder: 当然,有的人会说,表都加上前缀,统一一下不就行了,我想说,如果你其他地方的代码怎么办,比如已经开发好的一个项目?再去改?累死你... 还有人说数据库操作使用原生的不就行了?不好意思,本人有一个强迫症,就想知道到底可不可以处理.只为解决问题提供方法.如果觉得受不了的话,请自行绕过..…
http://blog.csdn.net/yanhui_wei/article/details/25803945 一.大纲 1.codeigniter框架的授课内容安排 2.codeigniter框架的简介 |-----关于框架的概念 |-----使用CI框架的好处 |-----为什么选择CI框架 3.codeigniter框架的具体安装步骤 |-----官网下载:http://www.codeigniter.com/ |-----httpd.conf配置文件中rewrite重写机制的开启 |-…
一.大纲 1.codeigniter框架的授课内容安排 2.codeigniter框架的简介 |-----关于框架的概念 |-----使用CI框架的好处 |-----为什么选择CI框架 3.codeigniter框架的具体安装步骤 |-----官网下载:http://www.codeigniter.com/ |-----httpd.conf配置文件中rewrite重写机制的开启 |-----httpd.conf配置文件虚拟主机的开启 |-----httpd-vhosts.conf配置文件中虚拟主…
从本篇開始.将深入CI框架的内部.一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说.全局函数具有最高的载入优先权.因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就很诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源代码阅读笔记2 一切的入口 index…
        CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的工具包,它可以为开发者们建立功能完善的 Web 应用程序.本人使用CI框架有一段时间了,现在决定把该框架源码剖析一遍,理解其构架的用意与精妙之处.分析完所有的源码后,我才来总结CI框架的优缺点,以及适用于哪些场景开发. 目前CI最新的版本是 3.1.4, 4.0版本也即将发布.我们先分析3.1.4版本,然后再看看4.0有哪些重大突破. 首先是查看根目录下index.php文件了,主要定…
该文延续上篇文章: CI框架浅析(一) 在CI框架的核心库中,CodeIgniter.php负责加载所有需要的类库,第一个加载的是公共库 core/Common.php Common.php 负责加载以下公共方法: 方法名 注释 is_php($version) 判断$version是否小于或等于当前安装的PHP版本 is_really_writable($file) 判断该文件是否可写 load_class($class, $directory = 'libraries', $param =…
    业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包也就2M多,而且使用起来方便快捷,适用于一些简单的功能开发,以及做app 接口.       该框架整个流程图如下: li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Hannotate SC" } span.s1 { } sp…
从网上弄了一张框架学习思维导图,从图中就可以看出ci用了设计模式中的MVC架构,使得用起来很简单方便 用了大概两个星期开发了一个<文章管理系统>觉得开发过程中学到了很多,挺不错的,而且在学习过程中, 不断进取,不断学习是前进的动力. 现在大概讲下ci的理解: ci包括models controllers views ,下载ci框架包后需要的就是aplication systerm(ci框架包) index.php总入口. 数据库访问 1. 修改配置文件: Application-àconfig…
CodeIgniter框架 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法,用于被浏览器请求 2.CI中的MVC CI简介:CodeIgniter是一个轻量级但功能强大的php框架,基于MVC的设计模式.提供了一套丰富的类库 2.1.访问的url使用的pathinfo 2.2.格式:入口文件/控制器/动作(默认pathinfo格式) 2.3.application目…
如果你想在控制器中切换在application/config/database.php中配置好的数据库group,那么你可以参考这篇博客:CI框架在控制器中切换读写库和读写库 如果你是希望在模型中切换group,那么就不要像在控制器中那样做,比如这样: <?php class Hello_model extends CI_Model{ public function getInfo(){ $this->db = null; $this->load->database("r…
这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可供参考,有的朋友直接看文档就可以自己实现此支付接口的开发了. 一.前言 为何我还写一篇微信支付接口的博文呢?第一,我们必须知道,所谓的工作经验很多都是靠总结出来的,你只有总结了更多知识,积累了更多经验,你才能在该行业中脱颖而出,我个人觉得如今的招聘,很多都需要工作经验(1年.3年.5年....),其…
当前(2019-03-22)CodeIgniter 框架的最新版本是 3.1.5,于2017年6月发布,距今快两年了也没有更新,这与 Laravel 的更新速度相比差距太大了.因为确实,它是一个很古老的框架了(第一个版本在2006年发布),当初的设计原则,开发环境与现在都已经大为不同.它有自己的设计原则,有相配套的一大堆工具.库,使用这些现有的工具就已经能很好地满足日常开发所需. 虽然已经是2019年了,但是公司用的框架是CI框架,所以我也应当快速适应CI框架的开发模式.本文就针对CI框架开发中…