codeigniter注意点】的更多相关文章

通常情况下,Controller 中的方法可以通过 $this->config->item('item_name') 的方式来加载配置文件中的值 但是如果不继承 CI_Controller 这个方式就不能用了 这时候可以通过创建来自 CI_Controller 的引用来实现: $CI =& get_instance(); $item_value = $CI->config->item('item_name'); 详见官方文档: 在你的类库中使用 CodeIgniter 资源…
在常用的框架本身都已经做好了分层和目录结构,但这在很多时候不满足项目的需求甚至在某些情况下变得不合理,因此很多时候需要自定义目录结构,在此就看看如果在CodeIgniter框架中自定义模板目录: 在CodeIgniter框架的入口文件就有一个配置项: /* *--------------------------------------------------------------- * VIEW DIRECTORY NAME *---------------------------------…
CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包. 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构.通过减少代码量,CodeIgniter 让你更加专注 于你的创造性工作. http://codeigniter.org.cn/user_guide/general/welcome.html 下图说明了整个系统的数据流程: index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源: Ro…
使用场景: 注意 get_instance 的使用场景,这个方法并不是用在控制器中的.而是用在控制器外面,比如类库中,想操作 CI 超级对象的时候,超级对象实际上就是当前控制器的实例. 你随便下个CI框架的源码都会看到很多的get_instance() 函数,这个函数是用来获取CI 的全局超级对象,CI 是单例模式的框架,所有全局有一个超级对象.因为只有一个实例,所以无论这个函数使用多少次都不会消耗资源的.一般来说,只有在helper或library中才使用get_instance. 以前我们都…
微信支付Native扫码支付模式二之CodeIgniter集成篇  http://www.cnblogs.com/24la/p/wxpay-native-qrcode-codeigniter.html CI:3.0.5 微信支付API类库来自:https://github.com/zhangv/wechat-pay 请先看一眼官方场景及支付时序图:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 官方API列表:https…
1. ./config/redis.php: <?php $config['redis_host'] = '127.0.0.1'; $config['redis_port'] = '6379'; $config['redis_isopen'] = true; 2. ./config/config.php: require_once(APPPATH . "config/redis.php"); 3. ./application/libraries/RedisService.php:…
最近兼职公司已经众筹成功的无线门铃的消息推送出现了问题,导致有些用户接收不到推送的消息,真是吓死宝宝了,毕竟自己一手包办的后台服务,影响公司信誉是多么的尴尬,容我简单介绍一下我们的需求:公司开发的是一款无线门铃系统,如果有人在门外按了门铃开关,门铃开关会发射一个信号,屋里的接收网关接收到信号会发出响声,同时也会推送一条消息到用户手机,即使这个手机是远程的,也就是主人不在家也知道有人按了家里的门铃.这里后台需要解决的问题是搭建APNS推送的Provider,因为要想把消息推送到苹果手机,按照苹果公…
nginx环境下CodeIgniter会出现一些问题! 1.数据库驱动连接失败! 出现如下问题: A PHP Error was encountered Severity: Warning Message: mysqli::real_connect(): (HY000/2002): No such file or directory Filename: mysqli/mysqli_driver.php 解决方法: 这个问题是php.ini配置的问题. 默认以下配置为空,将以下三个选项设置成你my…
CodeIgniter 的钩子功能,使得我们可以在不修改系统核心文件的基础上,来改变或增加系统的核心运行功能.可是钩子究竟该怎么用呢?虽然不是很难,不过很多刚用ci的朋友可能还是不明白怎么用. 通过本文的简单实例,大家一下就会明白的. 手册非常好,大家不要舍近求远哦!先看手册,不懂的地方再去别的地方寻求答案,一点个人的建议. 使用hooks,需要以下三步: 在config/config.php中开启; $config['enable_hooks'] = TRUE; 钩子是在 applicatio…
微信支付接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 首先你得知道这个jsapi是不能离开微信进行调用支付的,明白了这个道理我们好下手,页面是在微信内显示并通过jsapi调用微信支付组件进行支付. 可以看看我们上一篇文章,主要是Native扫码支付模式二 我们仍然继续使用wechatpay.php这个支付集成类,简单方便好理解,不过如果应用jsapi的话这个类有个bug 在我们构造jsapi需要的参数时有个时间…
在CodeIgniter框架中,CI本身自带了验证码,但是查看文档的时候,发现: 需要新建一个表,用来存储验证码信息.因为习惯了session存储验证码信息,所以我把我认为比较好看的验证码应用在了CI的框架中. 在 CodeIgniter/application/libraries/ 目录下,新建一个文件 取名 captcha.php. <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Capt…
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下:   $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '100'; $config['max_width']  = '1024'; $config['max_height']  = '768';   $this->load->library…
最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路.用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方. 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值.如果你之前没有使用过这种模式写过程序,你也许会皱起额头,不过你应该给自己尝试这样做…
http://www.ibm.com/developerworks/cn/opensource/os-cn-yii/ http://codeigniter.org.cn/ http://baike.baidu.com/link?url=tBz-WEY7XblzBEUjjflBPPp39BFqVk-TyMkeKhTq_5c30eFQi8xzf6RS69VMlDxm1a0Q4qYlTfFeA7ItxCCOSK…
为什么选这样的开发环境 常见的PHP集成开发环境有Eclipse+PDT,NetBeans,PHPEclipse,Zend Studio,PhpStorm等,我经过多方面的考虑(费用.易用性.功能.活跃度和运行速度等),最后选择了NetBeans. 另外提一下PhpStorm,这个JetBrains出品的IDE拥有相当好的口碑(至少我查下来是这样),甚至一些大牛们将JetBrains称作“IDE行业的良心”,只是此工具是要掏点钱的,虽然也不是很贵(个人开发者License是99美元),想想如果这…
天变冷了,人也变得懒了不少,由于工作的需要,最近一直在学习CodeIgniter(CI)框架的使用,没有系统的从PHP基本语法学起,在网上靠百度谷歌,东拼西凑的实现了一些简单的功能.所以,老PHPer可以绕道了. PHP实现简易blog 参考该篇博客所实现的功能,重新用CI实现了一下. 主要实现文章的添加.查看.删除.搜索.这里面最难实现的是文章分页,看似简单的功能,却费了一些功夫. 当然,离一个完整的系统还有很多功能没开发,这里只是简单引用了bootstrap的样式. MVC模型      …
到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入口 ind…
PHP清理跨站XSS xss_clean 函数 整理自codeigniter Security 由Security Class 改编成函数xss_clean 单文件直接调用.BY吠品. //来自codeigniter 清理跨站XSS xss_clean //Security Class 改编成函数 function remove_invisible_characters($str, $url_encoded = TRUE) { $non_displayables = array(); if ($…
本文转载自:http://www.softeng.cn/?p=74 这节课讲一下CI框架的路由规则,以及如何在CI框架下实现ajax功能. 首先,先介绍CI框架的路由规则,因为CI框架是在PHP的基础上发展而来的,所以在基本的路由规则中,和原生态的PHP项目是相似的,但是CI框架是符合MVC框架的,在前两节中也提到了,MVC框架一般是以控制器作为程序入口,所以,使用CI框架做出来的网站,其URL都是控制器的地址,而视图和模型的地址对于用户来说是透明的.接下来先看看CI的默认路由规则: examp…
本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中所介绍的标准的MVC框架与用户交互的一个过程.下面,开始今天的课程. 首先,还是和昨天一样,解压下载到的CodeIgniter框架源码,更改目录名称为CI_02(如果不会此步骤,请看第一课)并载入工程.在昨天的例子中,大家可以看到,最先被修改的控制器是Welcome类,可是一般来说,访问一个网站不应…
codeigniter自带的文件下载辅助函数非常简单实用,但是在处理大文件的时候,就显得捉襟见肘. 在网上找到了一个对download_helper.php文件的扩展,非常好用,记录下,遇到相同问题的猿友们可以借鉴下. 代码如下: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * Force Download * * Generates headers that force a dow…
shell简介 在计算机科学中,Shell俗称壳(用来区别于核).而我们常说的shell简单理解就是一个命令行界面,它使得用户能与操作系统的内核进行交互操作. 常见的shell环境有:MS-DOS.Bourne Shell(/usr/bin/sh或/bin/sh).Bourne Again Shell(/bin/bash).C Shell(/usr/bin/csh).K Shell(/usr/bin/ksh).Shell for Root(/sbin/sh)等等. shell的脚本格式是固定的,…
php中我们对错误的处理会常用到error_reporting函数了,大家可以看到最多的是error_reporting(E_ALL ^ E_NOTICE)了,这个到底什么意思呢,下面我来来看看. error_reporting() 函数规定报告哪个错误 .该函数设置当前脚本的错误报告级别.该函数返回旧的错误报告级别. 首先要知道error_reporting()函数是用来设置错误级别并返回当前级别的.它有14个错误级别,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 1…
Email 类 在配置文件中设置 Email 参数 如果您不想使用使用上述方法设定参数,您可以把它们放入一个配置文件.创建一个新文件称为email.php ,添加$config数组在该文件中.然后将该文件保存为config/email.php 它将自动的被使用.如果您保存了一个参数配置文件,就不需要使用$this->email->initialize()函数来初始化参数了. ftp类 在配置文件中设置参数 如果你更倾向把FTP参数设置保存在一个配置文件中,只需创建一个名为ftp.php的文件,…
请参考:CI文档的输入类部分: $this->input->post() $this->input->get() ----------------------------------------------------------------------------------------------------------------------- 本文主要介绍在CodeIgniter框架中如何获取get和post参数. 获取get数据 在PHP主流的框架中,CI中url的pat…
驱动器“Drivers”是CodeIgniter框架从2.0版本开始加入的新特性.正如中文版译者所言: 笔者看了这三篇英文参考,加上自己的一些理解,对官方文档关于驱动器的这一部分进行了一些补充. 1.什么是驱动器 驱动器是一种特殊类型的类库,它有一个父类和任意多个子类.子类可以访问父类, 但不能访问兄弟类.在你的控制器中,驱动器为你的类库提供了 一种优雅的语法,从而不用将它们拆成很多离散的类. 一般我们看到父类和子类,我们会毫不犹豫的认为他们是继承和派生的关系,但是这里需要注意的是,驱动器中所提…
Codeigniter  CRUD生成工具 http://crudigniter.com/…
分页配置项 http://stackoverflow.com/questions/18418900/codeigniter-pagination-config-without-repeating-within-different-controllers 相关工具 google搜索"codeigniter generator",会有几个自动化的工具 http://crudigniter.com/ https://bitbucket.org/harviacode/codeigniter-c…
本文抄自http://www.cnblogs.com/webu/archive/2012/11/20/2779999.html 第一次正儿八经用CodeIgniter框架做项目,结果不会定义全局变量,只能在一个controller里定义一个public varable,每个函数调用,别的controller里还需要重新定义,view里还用不了,必须先传值. 经过研究,在CI中使用全局变量需要自定义Library的形式定义全局变量,这里我介绍一个用config里配置的方法 一:library/gl…
本文转载自:http://www.softeng.cn/?p=45 今天开始,我将在这里连载由我自己编写的<CodeIgniter框架入门教程>,首先,这篇教程的读着应该是有PHP基础的编程人员,如果你是PHP初学者,建议你先学习基础的PHP技术(包括:变量.选择.判断.循环.数组.面向对象.数据库操作等)以及基础的Web技术术语(包括:URL.页面.表单.交互等),之后再来学习本套教程.       下面我先来介绍一下CodeIgniter框架.CodeIgniter是一个小巧但功能强大的…