自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

让编程改变世界

让编程改变世界、改变生活、改变自己

  • 博客(175)
  • 资源 (33)
  • 收藏
  • 关注

原创 PHP开发小技巧⑦—获取中文字符的拼音首字母

有时候在我们的项目开发过程中,需要对某一组数据按照中文进行排序,这就需要我们首先获取这些中文字符的首字母,然后进行排序,这是解决此类问题的以后总方法。笔者就曾遇到这样一个问题,当时由于经验比较少,为了解决这个问题查找了很多方法,但是都没有把它完美的解决掉,最后还是在网上找到这个一串代码先获取到首字母,然后在进行拍的序。        代码如下: <?php /**

2016-12-06 08:49:03 1967 3

原创 PHP开发小技巧⑥—判断是否是移动端访问

在开发中这一技巧也是我们经常用到的,现在使用手机比使用PC的更为方便,所以有时为了使系统更加友好,要自动的判断是否是移动端进行访问,如果是则让其进入不同的路径。前些日子我也写过一遍博文:PHP判断访客是否是手机端(移动端浏览器)访问的4种方法,写的比较详细,今天这篇主要是将几种方法合成了一个函数,使用起来更为方便。        下面就是其代码实现过程: <?php

2016-12-05 08:51:01 1573

原创 PHP开发小技巧⑤—实现实现递归删除文件夹

在很多时候,我们开发过程中需要我们对磁盘上文件进行直接操作,这是在编程中不可避免的,下面的代码介绍的就是如何进行递归的删除磁盘上文件: <?php /** * ======================================= * Created by Zhihua_W. * Author: Zhihua_W * Da

2016-12-03 17:26:14 884

原创 PHP开发小技巧④—两种方法实现获取随机字符串

获取随机字符串的方法很多,只要自己的算法设计的比较好,就可以很方便快速的得到自己想要的结果。获取随机字符串在我们的日常工作编程中也用到的很多,例如:登录时要输入的验证码,发送手机短信验证的验证码,以及在我们生成订单的时候为了防止订单号码重复,我们会在固有的单号之后再加上一串随机字符串,增加其号码不会重复的保障,等等。其实只要是对编程有了解的人都知道,没有什么真正的随机,所有的都能找到其规律,只是难

2016-12-01 17:21:15 2179

原创 PHP开发小技巧③—实现多维数组转化为一维数组

在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常的大,造成程序的时间复杂度以及空间复杂度非常大。下面就讲述一下我是如何实现这一情况,并且代码简单明了。        实现方法:                Ⅰ 使用递归调用;     

2016-11-28 09:32:24 5696

原创 PHP开发小技巧②—实现二维数组根据key进行排序

在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果;但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来对自己的想法进行实现。下面就讲述一下如何实现二维数组根据key进行排序。        实现方法: <?php /** * =================

2016-11-26 14:58:34 1935

原创 PHP开发小技巧①—实现时间日期友好显示

系统的友好性在开发过程中是非常重要的,一个系统非常友好不光可以带给用户非常棒的使用体验,而且还可以使系统有这更长的寿命。今天这篇博文主要来展示一个我们如何让日期时间更加友好的显示。        下面就是使时间日期友好显示的代码: <?php /** * ======================================= * Crea

2016-11-23 17:56:04 1994

原创 CI框架源码解析二十之文件上传类文件Upload.php

最近一直在研究Codeigniter框架,本篇博文为大家简述解析文件上传类文件的实现,以前写过一篇CI框架优化文件上传方法以及实现多文件上传的博文,大家可以放在一起进行对比阅读。CI框架教程2——优化文件上传方法以及实现多文件上传 上传一个文件通常涉及以下几步:        Ⅰ 显示一个上传表单,用户选择文件并上传。         Ⅱ 当提交表单时,文件将被上传到你指定的目录。 

2016-11-15 18:04:15 3778

原创 PHP简单实现MVC框架路由功能模式

说到使用PHP进行网站开发,自然离不开各种PHP的开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等等,让我们的开发更为快捷方便。但是很多人只是会使用框架,却从来不去了解框架的内部是如何实现的,这对于我们编程能力的提高是没有一点用处的。那么这一篇博文,我们就先来一个简单点的功能,也就是说说MVC框架的路由功能实现方法。        一般的单入口框架路由都是这样的结构:lo

2016-11-15 09:11:19 11716 3

原创 CI框架源码解析十九之分页类文件Pagination.php

CodeIgniter 的分页类非常容易使用,而且它 100% 可定制,可以通过动态的参数,也可以通过保存在配置文件中的参数。如果你还不熟悉 "分页" 这个词,它指的是用于你在页面之间进行导航的链接。像下面这样:« First   1 2 3 4 5 >  Last »举个例子说明如何在你的控制器方法中创建分页:Ⅰ 在构造函数中引入分页类: public function

2016-11-08 17:04:24 3807

原创 JS实现倒计时三秒跳转后到新页面

为了是网站的页面更友好,更加人性化,我们往往会在操作错误或是成功的时候进行提示然后跳转到相应的页面。同时为了使页面更加美化,我们往往会加上倒计时跳转功能,也就是使网页上的秒杀呈现倒数显示。下面就是具体的实现过程。1、添加mate        这个mate的功能就是实现跳转,content中的内容3就是三秒后跳转,url就是所要跳转的地址。光有这些还不够,我们只知道三秒

2016-11-05 09:26:23 23642

原创 Js校验表单数据后提交表单的3种方法

在现在的网站开发过程中,对表单数据进行验证是非常必须的,通过Js将表单数据在客户端进行校验验证不仅速度很快,而且还有一个更大的好处就是缓解服务器压力。如果我们不在客户端进行数据校验,无论什么数据全部都提交到后台服务器,让服务器来进行处理,这个对服务器的浪费是非常大的。故而今天本篇博文讲在浏览器客户端使用Js对表单数据校验后后提交表单的3种方法。1、方法一HTML代码:

2016-11-03 17:49:25 12336 1

原创 Codeigniter框架整合Smarty引擎DEMO

Smarty的模板机制很强大,一般情况下CI框架无需整合其他模板标签,因为PHP本身就是一种标签,简单易用。Codeigniter整合Smarty教程(我用的都是最新版本)如下:        第一步:下载Codeigniter最新版本:CodeIgniter框架源码        第二步:下载Smarty最新版本:Smarty引擎源码        第三步:具体配置我已将本人

2016-11-01 15:40:43 735

原创 CI框架源码解析十八之日志记录类文件Log.php

日志记录类,只要用于记录CI框架信息的一些操作日志(错误日志、调试日志、信息日志等等)。日志记录类Log结构:        $_log_path:日志存放路径。        $_file_permissions:写入的日志文件权限,默认为0644,即rw-r--r--。        $_threshold:允许写日志的阀值,默认为1。            0 = Dis

2016-10-29 14:50:24 3992

原创 CI框架源码解析十七之异常处理类文件Exceptions.php

本篇博文讲述异常处理类文件Exceptions.php。使用CI框架,我们通常使用一下三个函数处理错误:一、show_error('消息' [, int $status_code = 500 ] );二、show_404('页面' [, 'log_error']);三、log_message('级别', '消息'),有以下三种错误信息:        ① 错误类型的消息。 这种是真正的错误消息

2016-10-29 08:35:57 2921

原创 CI框架源码解析十六之加载器类文件Loader.php

加载器,顾名思义,是用于加载元素的,加载的元素可以是库(类),视图文件 ,驱动器 ,辅助函数 ,模型或其他你自己的文件。本篇并不是对某一组件的详细源码分析,而只是简单的跟踪了下CI框架的autoload的基本流程。因此,可以看做是Loader组件的分析前提。        CI框架中,允许你配置autoload数组,这样,在你的应用程序初始化时,会自动加载相应的类库,例如,在applicati

2016-10-28 15:43:42 2927

原创 CI框架源码解析十五之模型类文件Model.php

这篇博文我们讲述模型类文件Model.php,大家一看这个文件名肯定也会觉得非常熟悉,同样的这个Model,就是我们通常所说的MVC中的M。这个文件就是我们在开发项目过程中开发模型时所有的模型类都要继承自这个文件。        Model类的代码也非常少,有用的方法就下面这一个,下面这个方法是为了在Model里面可以像控制器那么通过$this->做很多事情。例如想在model里面加载某个li

2016-10-28 08:56:22 1552

原创 CI框架源码解析十四之控制器类文件Controller.php

本篇博文讲述超级控制器类文件Controller.php,大家一看这个文件名肯定是非常的兴奋,这个Controller,就是我们通常所说的MVC中的C。这个文件就是我们在开发项目过程中开发控制器是所有的控制器类都要继承自这个文件。在经过路由分发之后,实际的应用Controller接管用户的所有请求,并负责与用户数据的交互。CI中所有的应用控制器都应该是CI_Controller的子类(除非你扩展了

2016-10-27 18:00:15 2218

原创 CI框架源码解析十三之语言类文件Lang.php

本篇博文讲述语言类,主要讲述语言类的用法,关于语言类本身文件类内容并没有多少内容,比较简单,稍微查看代码就可以明白其作用用途,语言类提供了一些方法用于获取语言文件和不同语言的文本来实现国际化。下面我们讲述多语言的用法。        在你的 CodeIgniter 的 system 目录,有一个 language 子目录,它包含了一系列 英文 的语言文件。在 system/language/e

2016-10-27 14:47:19 2426

原创 CI框架源码解析十二之输入类文件Input.php

输入类有两个用途:一:为了安全性,对输入数据进行预处理;二:提供了一些辅助方法来获取输入数据并处理。并且该类由系统自动加载,你无需手工加载。① 对输入进行过滤        安全性过滤:当访问控制器时,安全过滤方法会自动被调用,它做了以下几件事情:首先,如果 $config['allow_get_array'] 设置为 FALSE (默认是 TRUE),销毁全局的 GET 数组。其次,当开

2016-10-27 10:28:42 2761

原创 CI框架源码解析十一之安全类文件Security.php

CI框架安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用。CI框架安全类提供了全局防御CSRF攻击和XSS攻击策略,只需要在配置文件开启即可并提供了实用方法: $config['csrf_protection'] = TRUE; $config['global_xss_filtering'] = TRUE; //实用方法 $this->

2016-10-26 17:39:50 2953 4

原创 CI框架源码解析十之输出类文件Output.php

输出类是个核心类,它的功能只有一个:发送 Web 页面内容到请求的浏览器。如果你开启缓存,它也负责缓存你的 Web 页面。        Output类参考说明(摘抄CI框架手册):在一般情况下,你可能根本就不会注意到输出类,因为它无需你的干涉, 对你来说完全是透明的。例如,当你使用 加载器 加载一个视图文件时,它会自动传入到输出类,并在系统执行的最后由 CodeIgniter 自动调用。尽管

2016-10-26 11:00:42 3132

原创 CI框架源码解析九之路由类文件Router.php

本篇博文将讲述CI框架Router路由类文件,CI框架Router路由类将URI映射到对应的控制器及方法,Router类大量代码处理的是自定义路由,该类要支撑以下几个功能点:① 自定义路由规则        在 application/config/routes.php 文件中的 $route 的数组,利用它可以设置路由规则。 在路由规则中可以使用通配符或正则表达式。使

2016-10-25 10:11:50 5121 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 2204

原创 CI框架源码解析七之编码类文件Utf8.php

本篇博文主要讲述编码类文件Utf8.php。UTF8类的主要功能是检测CI框架和环境是否支持Utf8编码,转换编码,过滤字符串的功能。这个功能不多,逻辑也不是特别麻烦,下面我们就一步一步的来解析这个文件。1、构造函数__construct() /** * 构造函数:检测是否支持utf8 */ public function __constr

2016-10-20 09:48:18 1939

原创 CI框架源码解析六之配置类文件Config.php

一个灵活可控的应用程序中,必然会存在大量的可控参数(我们称为配置),例如在CI的主配置文件中(这里指Application/Config/Config.php文件),不仅如此,CI框架还允许你将配置参数放到主配置文件之外。例如,你可以定义自己的配置文件为Config_app.php, 然后在你的应用程序控制器中加载你的配置文件,如此纷繁多样的配置项和配置文件,CI框架是如何进行管理的?这便是我们今

2016-10-19 17:03:28 2960

原创 CI框架源码解析五之钩子类文件Hooks.php

CI框架可以实现在不修改系统核心文件的基础上来改变或增加系统的核心运行功能(如重写缓存、输出等),那就是Hooks,主要作用是CI框架下扩展base_system,它的主要作用是在CI启动时运行一些开发者定义的一些方法,来实现一些特定的功能。钩子是什么呢?我们可以这样理解:钩子是一种事件驱动模式,它的核心自然是事件(CI框架中pre_system,pre_controller等都是特定

2016-10-18 18:05:01 3291

原创 CI框架源码解析四之基准测试类文件Benchmark.php

本篇博客我们解析讲述的是基准测试类文件Benchmark.php,通过前面几篇博文的解析,我们已经了解到:CI框架中核心流程的核心功能都是由不同的类组件来完成的。这些类组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI框架的核心骨架。        从本篇开始,将进一步去分析各类组件的实现细节,深入CI框架核心内容的黑盒内部(通过我们的解析研究之后,

2016-10-18 10:29:06 1947

原创 CI框架源码解析三之全局函数库文件Common.php

从本篇开始,基本上算是深入到了CI框架的内部,下面就让我们一步步去探索这个框架的实现、结构和设计。        Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作)。        CI框架全局函数库文件Common.php中所有全局函数的定义方式都为:

2016-10-17 15:17:59 2992 1

原创 CI框架源码解析二之引导文件CodeIgniter.php

上篇解析入口文件写到载入 core/CodeIgniter.php框架核心文件,启动框架。CodeIgniter.php文件被称为BOOTSTRAP,也就是引导文件,这里也就是CI框架的核心了。其实把CodeIgniter.php这个文件的代码运行一次,就是整个CI应用都完成了一次完整的运作流程了。其中会加载一些组件,引入很多外部文件,等等。所以建议在阅读此文件代码的时候,第一遍先阅读它的大概流程

2016-10-15 14:32:04 4017 4

原创 CI框架源码解析一之入口文件index.php

Index.php作为CI框架的入口文件,源码分析,自然而然由此开始。在源码分析的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现。在博主看来CI框架的index.php文件一共完成了四项工作:① 设置框架应用的环境状态② 配置系统、应用、视图等程序目录以及得到其路径③ 系统、应用、视图等目录的正确性验证④ 载入 codeigniter/CodeIgni

2016-10-14 15:50:19 6744 1

原创 PHP实现简单的验证码功能机制

网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制,有的仅仅使用一个几位数字字母混乱的验证码,有的进行手机发送短信进行验证,有的使用邮箱发送邮件进行验证,但是这个验证码功能机制是如何实现的呢?下面就为大家详细解释验证码功能机制的实现思路以及简单的实现方法。1、验证码功能机制实现思路① 常规的验证码实现:

2016-10-12 17:54:39 5781 6

原创 ThinkPHP框架整合phpqrcode生成二维码DEMO

ThinkPHP框架发展到今天功能已经变得是非常强大了,但是ThinkPHP框架中没有二维码相关的库,因此我们可以通过整合phpqrcode来完成生成二维码的功能。想使用phpqrcode首先就要把phpqrcode代码包下载下来,大家可以去官网下载,也可以在网络上搜索进行下载,这里我为大家提供的有一份 phpqrcode代码包。下载地址:phpqrcode代码包。        下面开始讲述

2016-10-09 11:18:40 9858 2

原创 PHP 加密技巧

在工作中发现很多开发人员都不是特别注意网站的安全性,对加密算法的使用也是非常的单一,也不是很注意加密算法的使用。由于本人是个技术迷,所以对一些乱起八糟的研究比较多,我对sql注入也比较喜欢,前前后后检测过不少网站,asp、php、jsp 等都有看过。发现这些网站基本都是使用md5加密算法,很多技术人员都说 MD5算法是不可逆的无法破解,其实这是一种非常不明智的说法,对MD5是无法逆,可是可以对它进

2016-10-08 11:01:54 455

转载 PHP + MySQL 实现无限分类的2种方法

无限分类是个老话题了,PHP和MySQL中实现无限分类的思路也有许多种,本文主要介绍其中2种最巧妙的无限分类方法,一起来看看吧。1、方法一        这种方法是很常见、很传统的一种,先看表结构:表:categoryidint主键,自增namevarchar分类名称pidint父类id,默认0

2016-10-07 10:09:34 1589

原创 PHP生成随机密码的4种方法及性能对比

使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考。1、方法一:① 在 33 – 126 中生成一个随机整数,如 35;② 将 35 转换成对应的ASCII码字符,如 35 对应 #;③ 重复以上 1、2

2016-10-04 22:09:32 3391 1

原创 PHP如何实现“autoload”机制详解

PHP的“autoload”机制在平常的开发应用中是非常常见的,并且是非常一个重要的功能。比如:PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义在同一个类文件中——相信这个文件一定会非常大。但是__autoload()方法出来了,以后就不必为此大伤脑筋了,这

2016-10-02 13:38:32 3986 1

原创 ThinkPHP实现定时执行任务的两种方法

在平常的项目中我们总是会遇到需要将某个方法任务定时执行的问题,定时执行方法任务如果我们拥有服务器的权限,我们可以直接在服务器设置定时任务,例如在Windows的任务计划程序中进行设置,在Linux中编写脚本进行执行。如果我们没有服务器权限,我们该如何使用项目的程序代码来自动定时执行呢?接下来就为大家描述一个基于ThinkPHP框架定时执行任务的例子,具体的方法会在下面进行详细的描述。     

2016-09-22 18:19:23 41411 4

原创 CI框架教程2——优化文件上传方法以及实现多文件上传

最近一直在研究Codeigniter框架,开发项目写到文件上传的时候发现大部分程序员使用Codeigniter框架的文件上传类编写上传方法的时候写的都存在这代码冗余(或者说代码重复利用率低、比较消耗资源。)故而我研究出一个稍微优化一点的上传方法。并且在查找资料时发现,Codeigniter框架同时上传多个文件比较困难,所以在优化方法的同时我又研究了一下如何使用Codeigniter框架实现同时上传

2016-09-22 10:23:15 1784

原创 详解PHP操作Memcache缓存技术提高响应速度的方法

一般来说,如果并发量不大的情况,使不使用缓存技术并没有什么影响,但如果高并发的情况,使用缓存技术就显得很重要了,可以很好的减轻数据库和服务器的压力,当然解决高并发的技术有很多,这里只是以缓存的角度来说明使用memcache的便捷性和方便性,使用memcache的前提是需要在服务端先配置好memcahche的环境(上篇文章已经讲述过了)!确认memcahce可以正常连接之后就可以在程序使用了!

2016-09-21 09:22:41 1107

JS实现聊天接收到消息语言自动提醒

JS实现聊天接收到消息语言自动提醒(您有新的消息请注意查收)

2019-01-09

Mui、H5+开发APP小技巧①:点击底部导航切换界面

Mui、H5+开发APP小技巧,点击底部导航切换界面源码文件,欢迎相互学习

2018-10-24

基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码

基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码

2018-02-27

环迅IPS3.0系统接口PHP_DEMO

环迅IPS3.0系统接口PHP_DEMO

2017-05-13

程序员编程艺术 pdf

程序员编程艺术.pdf

2017-04-13

算法之道(第2版) pdf

算法之道(第2版).pdf

2017-04-13

代码之美 pdf

代码之美

2017-04-13

程序员面试宝典(全) pdf

程序员面试宝典(全)

2017-03-30

编程之魂 pdf

编程之魂

2017-03-30

编程珠玑.pdf

编程珠玑

2017-03-30

Redis服务器32位64位

Redis服务器32位64位

2017-03-30

Pkadmin后台管理系统

pkadmin后台管理系统是基于Codeigniter_v3.1.0框架和Olive Admin后台模版进行开发的。开源是一种精神!为中国的互联网行业发展献出一份小小的力量。

2016-12-20

类库管理神器Composer安装包

类库管理神器Composer安装包

2016-12-06

PHP简单实现MVC框架路由功能源码

PHP简单实现MVC框架路由功能源码

2016-11-15

php微信支付,app调用接口

php微信支付,app调用接口

2016-11-11

Smarty引擎最新代码

Smarty引擎最新代码

2016-11-01

Codeigniter框架整合Smarty引擎DEMO

Codeigniter框架整合Smarty引擎DEMO

2016-11-01

CodeIgniter框架源码

CodeIgniter框架最新源码

2016-11-01

用于实现手机定位获取经纬度问题

用于实现手机定位获取经纬度问题

2016-10-14

ThinkPHP整合phpqrcode生成二维码DEMO

ThinkPHP整合phpqrcode生成二维码DEMO

2016-10-09

phpqrcode源码demo

phpqrcode源码demo

2016-10-09

ThinkPHP实现定时执行任务DEMO1_v3.2.1

ThinkPHP实现定时执行任务DEMO1_v3.2.1

2016-09-22

memcached-1.4_for_win32_win64

memcached-1.4_for_win32_win64

2016-09-18

极光推送服务端DEMO

极光推送服务端DEMO

2016-09-18

友盟推动服务端代码DEMO

友盟推动服务端代码DEMO

2016-09-08

环信即时通讯服务端DEMO

环信即时通讯服务端DEMO

2016-09-08

ThinkPHP整合环信即时通讯DEMO_完整代码

ThinkPHP整合环信即时通讯DEMO——完整代码

2016-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除