- 博客(24)
- 收藏
- 关注
原创 CI框架源码解析十八之日志记录类文件Log.php
日志记录类,只要用于记录CI框架信息的一些操作日志(错误日志、调试日志、信息日志等等)。日志记录类Log结构: $_log_path:日志存放路径。 $_file_permissions:写入的日志文件权限,默认为0644,即rw-r--r--。 $_threshold:允许写日志的阀值,默认为1。 0 = Dis
2016-10-29 14:50:24 3927
原创 CI框架源码解析十七之异常处理类文件Exceptions.php
本篇博文讲述异常处理类文件Exceptions.php。使用CI框架,我们通常使用一下三个函数处理错误:一、show_error('消息' [, int $status_code = 500 ] );二、show_404('页面' [, 'log_error']);三、log_message('级别', '消息'),有以下三种错误信息: ① 错误类型的消息。 这种是真正的错误消息
2016-10-29 08:35:57 2837
原创 CI框架源码解析十六之加载器类文件Loader.php
加载器,顾名思义,是用于加载元素的,加载的元素可以是库(类),视图文件 ,驱动器 ,辅助函数 ,模型或其他你自己的文件。本篇并不是对某一组件的详细源码分析,而只是简单的跟踪了下CI框架的autoload的基本流程。因此,可以看做是Loader组件的分析前提。 CI框架中,允许你配置autoload数组,这样,在你的应用程序初始化时,会自动加载相应的类库,例如,在applicati
2016-10-28 15:43:42 2872
原创 CI框架源码解析十五之模型类文件Model.php
这篇博文我们讲述模型类文件Model.php,大家一看这个文件名肯定也会觉得非常熟悉,同样的这个Model,就是我们通常所说的MVC中的M。这个文件就是我们在开发项目过程中开发模型时所有的模型类都要继承自这个文件。 Model类的代码也非常少,有用的方法就下面这一个,下面这个方法是为了在Model里面可以像控制器那么通过$this->做很多事情。例如想在model里面加载某个li
2016-10-28 08:56:22 1459
原创 CI框架源码解析十四之控制器类文件Controller.php
本篇博文讲述超级控制器类文件Controller.php,大家一看这个文件名肯定是非常的兴奋,这个Controller,就是我们通常所说的MVC中的C。这个文件就是我们在开发项目过程中开发控制器是所有的控制器类都要继承自这个文件。在经过路由分发之后,实际的应用Controller接管用户的所有请求,并负责与用户数据的交互。CI中所有的应用控制器都应该是CI_Controller的子类(除非你扩展了
2016-10-27 18:00:15 2142
原创 CI框架源码解析十三之语言类文件Lang.php
本篇博文讲述语言类,主要讲述语言类的用法,关于语言类本身文件类内容并没有多少内容,比较简单,稍微查看代码就可以明白其作用用途,语言类提供了一些方法用于获取语言文件和不同语言的文本来实现国际化。下面我们讲述多语言的用法。 在你的 CodeIgniter 的 system 目录,有一个 language 子目录,它包含了一系列 英文 的语言文件。在 system/language/e
2016-10-27 14:47:19 2366
原创 CI框架源码解析十二之输入类文件Input.php
输入类有两个用途:一:为了安全性,对输入数据进行预处理;二:提供了一些辅助方法来获取输入数据并处理。并且该类由系统自动加载,你无需手工加载。① 对输入进行过滤 安全性过滤:当访问控制器时,安全过滤方法会自动被调用,它做了以下几件事情:首先,如果 $config['allow_get_array'] 设置为 FALSE (默认是 TRUE),销毁全局的 GET 数组。其次,当开
2016-10-27 10:28:42 2694
原创 CI框架源码解析十一之安全类文件Security.php
CI框架安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用。CI框架安全类提供了全局防御CSRF攻击和XSS攻击策略,只需要在配置文件开启即可并提供了实用方法: $config['csrf_protection'] = TRUE; $config['global_xss_filtering'] = TRUE; //实用方法 $this->
2016-10-26 17:39:50 2884 4
原创 CI框架源码解析十之输出类文件Output.php
输出类是个核心类,它的功能只有一个:发送 Web 页面内容到请求的浏览器。如果你开启缓存,它也负责缓存你的 Web 页面。 Output类参考说明(摘抄CI框架手册):在一般情况下,你可能根本就不会注意到输出类,因为它无需你的干涉, 对你来说完全是透明的。例如,当你使用 加载器 加载一个视图文件时,它会自动传入到输出类,并在系统执行的最后由 CodeIgniter 自动调用。尽管
2016-10-26 11:00:42 3072
原创 CI框架源码解析九之路由类文件Router.php
本篇博文将讲述CI框架Router路由类文件,CI框架Router路由类将URI映射到对应的控制器及方法,Router类大量代码处理的是自定义路由,该类要支撑以下几个功能点:① 自定义路由规则 在 application/config/routes.php 文件中的 $route 的数组,利用它可以设置路由规则。 在路由规则中可以使用通配符或正则表达式。使
2016-10-25 10:11:50 5029 1
原创 CI框架源码解析八之地址解析类文件URI.php
URI类主要处理地址字符串,将uri分解成对应的片段,存到segments数组中。querystring分解后存到$_GET数组,ROUTER路由类在之后的解析路由动作中,也主要依靠URI类的segments属性数组来获取当前上下文的请求URI信息。 在CI框架中如果允许传统的querystirng模式,即设置$config['enable_query_strings'] = T
2016-10-20 16:12:19 2176
原创 CI框架源码解析七之编码类文件Utf8.php
本篇博文主要讲述编码类文件Utf8.php。UTF8类的主要功能是检测CI框架和环境是否支持Utf8编码,转换编码,过滤字符串的功能。这个功能不多,逻辑也不是特别麻烦,下面我们就一步一步的来解析这个文件。1、构造函数__construct() /** * 构造函数:检测是否支持utf8 */ public function __constr
2016-10-20 09:48:18 1911
原创 CI框架源码解析六之配置类文件Config.php
一个灵活可控的应用程序中,必然会存在大量的可控参数(我们称为配置),例如在CI的主配置文件中(这里指Application/Config/Config.php文件),不仅如此,CI框架还允许你将配置参数放到主配置文件之外。例如,你可以定义自己的配置文件为Config_app.php, 然后在你的应用程序控制器中加载你的配置文件,如此纷繁多样的配置项和配置文件,CI框架是如何进行管理的?这便是我们今
2016-10-19 17:03:28 2873
原创 CI框架源码解析五之钩子类文件Hooks.php
CI框架可以实现在不修改系统核心文件的基础上来改变或增加系统的核心运行功能(如重写缓存、输出等),那就是Hooks,主要作用是CI框架下扩展base_system,它的主要作用是在CI启动时运行一些开发者定义的一些方法,来实现一些特定的功能。钩子是什么呢?我们可以这样理解:钩子是一种事件驱动模式,它的核心自然是事件(CI框架中pre_system,pre_controller等都是特定
2016-10-18 18:05:01 3251
原创 CI框架源码解析四之基准测试类文件Benchmark.php
本篇博客我们解析讲述的是基准测试类文件Benchmark.php,通过前面几篇博文的解析,我们已经了解到:CI框架中核心流程的核心功能都是由不同的类组件来完成的。这些类组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI框架的核心骨架。 从本篇开始,将进一步去分析各类组件的实现细节,深入CI框架核心内容的黑盒内部(通过我们的解析研究之后,
2016-10-18 10:29:06 1895
原创 CI框架源码解析三之全局函数库文件Common.php
从本篇开始,基本上算是深入到了CI框架的内部,下面就让我们一步步去探索这个框架的实现、结构和设计。 Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作)。 CI框架全局函数库文件Common.php中所有全局函数的定义方式都为:
2016-10-17 15:17:59 2951 1
原创 CI框架源码解析二之引导文件CodeIgniter.php
上篇解析入口文件写到载入 core/CodeIgniter.php框架核心文件,启动框架。CodeIgniter.php文件被称为BOOTSTRAP,也就是引导文件,这里也就是CI框架的核心了。其实把CodeIgniter.php这个文件的代码运行一次,就是整个CI应用都完成了一次完整的运作流程了。其中会加载一些组件,引入很多外部文件,等等。所以建议在阅读此文件代码的时候,第一遍先阅读它的大概流程
2016-10-15 14:32:04 3953 4
原创 CI框架源码解析一之入口文件index.php
Index.php作为CI框架的入口文件,源码分析,自然而然由此开始。在源码分析的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现。在博主看来CI框架的index.php文件一共完成了四项工作:① 设置框架应用的环境状态② 配置系统、应用、视图等程序目录以及得到其路径③ 系统、应用、视图等目录的正确性验证④ 载入 codeigniter/CodeIgni
2016-10-14 15:50:19 6124 1
原创 PHP实现简单的验证码功能机制
网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制,有的仅仅使用一个几位数字字母混乱的验证码,有的进行手机发送短信进行验证,有的使用邮箱发送邮件进行验证,但是这个验证码功能机制是如何实现的呢?下面就为大家详细解释验证码功能机制的实现思路以及简单的实现方法。1、验证码功能机制实现思路① 常规的验证码实现:
2016-10-12 17:54:39 5750 6
原创 ThinkPHP框架整合phpqrcode生成二维码DEMO
ThinkPHP框架发展到今天功能已经变得是非常强大了,但是ThinkPHP框架中没有二维码相关的库,因此我们可以通过整合phpqrcode来完成生成二维码的功能。想使用phpqrcode首先就要把phpqrcode代码包下载下来,大家可以去官网下载,也可以在网络上搜索进行下载,这里我为大家提供的有一份 phpqrcode代码包。下载地址:phpqrcode代码包。 下面开始讲述
2016-10-09 11:18:40 9763 2
原创 PHP 加密技巧
在工作中发现很多开发人员都不是特别注意网站的安全性,对加密算法的使用也是非常的单一,也不是很注意加密算法的使用。由于本人是个技术迷,所以对一些乱起八糟的研究比较多,我对sql注入也比较喜欢,前前后后检测过不少网站,asp、php、jsp 等都有看过。发现这些网站基本都是使用md5加密算法,很多技术人员都说 MD5算法是不可逆的无法破解,其实这是一种非常不明智的说法,对MD5是无法逆,可是可以对它进
2016-10-08 11:01:54 439
转载 PHP + MySQL 实现无限分类的2种方法
无限分类是个老话题了,PHP和MySQL中实现无限分类的思路也有许多种,本文主要介绍其中2种最巧妙的无限分类方法,一起来看看吧。1、方法一 这种方法是很常见、很传统的一种,先看表结构:表:categoryidint主键,自增namevarchar分类名称pidint父类id,默认0
2016-10-07 10:09:34 1555
原创 PHP生成随机密码的4种方法及性能对比
使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考。1、方法一:① 在 33 – 126 中生成一个随机整数,如 35;② 将 35 转换成对应的ASCII码字符,如 35 对应 #;③ 重复以上 1、2
2016-10-04 22:09:32 3308 1
原创 PHP如何实现“autoload”机制详解
PHP的“autoload”机制在平常的开发应用中是非常常见的,并且是非常一个重要的功能。比如:PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义在同一个类文件中——相信这个文件一定会非常大。但是__autoload()方法出来了,以后就不必为此大伤脑筋了,这
2016-10-02 13:38:32 3917 1
基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码
2018-02-27
Pkadmin后台管理系统
2016-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人