- 博客(40)
- 资源 (4)
- 收藏
- 关注

原创 PHP面试总结
一.点到1:写出常用的10个linux命令 2:js中alert(0.2*0.4)结果是什么?和你预期的有不一样吗?为什么 3:验证邮箱的正则 4:写一个方法,获取某个目录下的所有文件,包括子目录 5:写一个sql语句(查询语句) 6:你平时是怎么优化mysql的 7:说出几个常用的非关系型数据库,各自有什么特点 8:解释一下restful 9:说一下position的四个属性
2015-08-18 23:19:18
864
1

翻译 怎样理解阻塞非阻塞与同步异步的区别?
同步与异步1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。 换句话说,就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句
2015-08-13 17:13:43
826

原创 Linux下crontab+php实现Mysql数据库定时备份
引言大项目中的数据库备份是必不可少的,否则一旦出现大问题就GG了,虽然本文是讲述利用PHP实现数据库定时备份,但是这并不是好的方案想要定时备份数据库,最快捷安全的方法就是利用shell脚本了,功能强大操作方便,而且执行速度极快,不像PHP还需要被apache解析一把。。当然,不管是用php定时备份,还是shell脚本定时备份,都离不开crontab这玩意,毕竟它才是真正的定时器,这里粗略的说一下cr
2015-07-27 09:43:33
2601
1

原创 基于Cookie的Session和禁用Cookie的Session
Session简介session的作用 它是一种在客户端与服务器之间保持状态的解决方案,它将会话信息(uid等)供浏览器后续请求使用,可以获取并修改变量的值。和cookie一起使用识别同一个客户。session何时创建 客户首次访问服务器时,session被创建并分配一个唯一的session_id,并将这个session_id传入客户端cookie中,保持客户端与服务器端的session_i
2015-07-23 11:13:54
2557

原创 理解钩子Hook以及在Thinkphp下利用钩子使用行为扩展
什么是钩子函数个人理解:钩子就像一个”陷阱”、”监听器”,当A发送一个消息到B时,当消息还未到达目的地B时,被钩子拦截调出一部分代码做处理,这部分代码也叫钩子函数或者回调函数 参考网上说法 譬如我们用鼠标在某个窗口上双击了一次, 或者给某个窗口输入了一个字母 A; 首先发现这些事件的不是窗口, 而是系统! 然后系统告诉窗口: 喂! 你让人点了, 并且是连续点了两鼠标, 你
2015-07-22 11:06:41
18492
8

原创 php文件上传类,支持产生文件缩略图
个人写的php文件上传类,支持所有文件上传,对于图片类型的文件,提供产生缩略图方法,用户可以自己进行配置。写的很一般,没有太多的测试,目前是没什么bug,就当提供学习和参考吧,代码:<?php /** * +---------------------------------------------------------------------- * | 文件上传类 Author Ftd D
2015-03-19 12:56:20
1552

原创 windows下用c/c++开发php扩展
一:所需工具:cygwin ,它是一个在windows平台上运行的类unix模拟环境 php源码(压缩包) php二进制文件,也就是安装在windows上的php vs2008 或者更高(vs2010,vs2013) win32build.rar和bindlib_win32.rar(主要用来生成config.win32.h)二:配置过程1: 解压PHP源码,里面有一个ext目录,这里便是负责
2015-03-02 17:19:16
3494
2
翻译 mysql中的row_format
Mysql的row_format在mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_f
2015-09-06 20:35:22
4300
转载 8大排序算法图文讲解
引言排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述八大排序算法。算法一:插入排序 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对
2015-07-29 20:02:11
726
转载 Ubuntu下重置Mysql root用户的密码
安装完Mysql却忘了root的密码,解决方法如下:sudo vi /etc/mysql/my.cnf,在[mysqld]段中加入一行“skip-grant-tables”sudo service mysql restart,重启mySQL服务sudo mysql -u root -p mysql,用空密码进入mysql管理命令行(进入mysql,或者用use mysql指令)update user
2015-07-26 16:38:35
827
转载 Memcache内存分配机制
page(页)为内存分配的最小单位 Memcached 的内存分配以page为单位,默认情况下一个page是1M,可以通过-I参数在启动时指定。如果需要申请内存时,memcached会划分出一个新的 page并分配给需要的slab区域。page一旦被分配在重启前不会被回收或者重新分配 Slabs(层)划分数据空间 Memcached并不是将所有大小的数据都放在一起的,而是预先将数据空
2015-07-23 16:30:42
2026
翻译 二叉树 二叉树的性质 存储结构 遍历二叉树 C实现二叉树的创建和遍历 线索二叉树
定义 二叉树(binary tree)是n(n>=0)个结点的有限集合,该集合为空集合称为空二>叉树,或者有一个根结点和两棵互不相交的,分别称为树根结点的左孩子树和右>孩子树组成.二叉树的特点每个结点最多有两棵子树,所以二叉树总没有度大于2的结点左子树和右子树是有顺序的,次数不能任意颠倒即使树中某结点只有一棵子树,也要区分是左子树还是右子树特殊的二叉树1. 斜树 所有的结点都只有左
2015-07-21 21:12:20
1207
转载 jQuery对象与DOM对象之间的转换方法
什么是jQuery对象? ---就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法。 比如: $("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法 这段代码等同于用DOM实现代码: document.getElementById("id")
2015-06-26 01:03:36
504
原创 sql语句优化小技巧
优化group by语句group by分组查询时,默认分组后,还会进行排序,可能会降低速度。 explain select * from table_name group by column; extra :use filesort //默认使用了文件排序 解决方法 在group by后面添加order by null防止默认排序尽量使用join子查询会产生临时表 使用joi
2015-06-25 16:55:14
687
原创 Mysql常见四种索引的使用
提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加 1.1主键索引的添加
2015-06-25 15:12:38
15218
转载 理解RESTful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如
2015-06-10 21:57:57
514
转载 linux使用crontab实现PHP执行定时任务
cron简介:首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab。该文件使用的格式和 /
2015-06-09 12:49:12
676
转载 CentOS下安装svn,添加新用户,重启svn服务
系统环境:CentOS-5 安装方式:yum install 安装软件:系统自动下载SVN软件1、检查是否安装了低版本的SVN [root@localhost /]# rpm -qa subversion 2、卸载旧的SVN [root@localhost modules]# yum remove subversion安装SVN[root@localhost modules]# yum i
2015-05-25 18:49:08
13272
原创 php设计模式之———代理模式
代理模式为其他对象提供一种代理以控制对这个对象的访问。 假设有个老人,他已经不能吃饭,不能睡觉,不能玩耍,这时候我们委托一个人,也就是找一个代理(delegate),将所有的事情交给这个代理去做。模式中的角色抽象角色(抽象类或接口):定义真实角色和代理角色所需要实现的方法真实角色:实现抽象角色中的方法,解决业务逻辑,不需要关心其他职责事务代理角色:实现抽象角色中的方法,代理真实角色实现业务逻
2015-04-23 00:20:22
735
原创 php设计模式之———观察者模式
观察者模式观察者模式(Observer),当一个对象状态发生改变时,依赖它的对象全部收到通知,并自动更新。模式中的角色抽象被观察者(抽象类,方便扩展)将观察者对象存放在一个容器里,该类提供一些接口,例如增加观察者,撤销观察者,通知观察者(notify)具体被观察者(具体类,继承被观察者抽象类) 存入需要通知的观察者,当观察者需要update时,调用notify方法抽象观察者(接口或抽象类)为具
2015-04-22 21:08:43
1096
原创 php设计模式之———装饰器模式
装饰器模式简单说,就是动态的添加类的功能。 一个类提供了一项功能,如果我们要在类中添加修改其他功能,我们通常采用继承的方法。创建一个子类继承这个类,重新实现类的方法。在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能。装饰器模式就是基于对象组合的方式,可以实现最大的灵活性我们需要一个装饰器接口 然后是一个被装饰对象最后我们需要若干个装饰器(继承自装饰器接口的具体
2015-04-21 22:37:06
992
原创 php设计模式之———单例模式
单例模式单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案,例如数据库资源,就可以使用单例来获得数据库资源简而言之,单例就是:一个类有且仅有一个实例,并且自行实例化向整个系统提供单例模式需要满足的条件:单例模式的类的构造方法必须是私有的,防止外部实力化 类中含有一个静态属性指向
2015-04-21 21:55:08
841
转载 PHP类库管理工具Composer入门
Java有Maven, Node.js有npm, ROR有gem, 这些语言的程序员在开心地使用包管理工具加速开发效率时,PHPer们还在复制粘贴的黑暗中。PHP在Composer之前,包管理的历史不堪回首。在相当长的一段时间内,如果应用依赖于第三方库,PHPer需要拷贝这些库的源代码, 或者通过PEAR、PECL安装。如果第三方库又依赖于更多的第三方库,那么很快就会进入依赖的黑洞。直到Compos
2015-04-07 16:14:19
1228
转载 PHP自动加载之spl_autoload_register()
PHP中spl_autoload_register函数的用法spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明 bool spl_autoload_register ([ callback $autoload_function ] ) 将函数注册到SPL __autoload函
2015-04-07 15:59:05
730
原创 链栈的基本操作(初始化,压栈,出栈)
链式栈的基本操作。这个例子中栈顶指针指到栈顶结点,不过在学习栈的时候,发现有一个有趣的问题: 严蔚敏版的<数据结构>中讲的是顺序栈的栈顶指针在栈顶元素的下一个位置。个人理解:由于判栈为空是这样的:top = base; 所以当插入第一个元素时,base指向这个元素,top+1,以后每次添加新的栈顶元素时,top都要加1,这就导致了栈顶指针永远在栈顶元素的下一个位置上。。#include <
2015-03-28 14:09:17
2365
原创 单链表的基本操作(初始化,增加,删除)
最近在看数据结构,练习单链表的基本操作,没什么难度,算是做个记录吧。#include <stdio.h>#include <malloc.h>#include <stdlib.h>//单链表的初始化增删插 date 2015/3/27//定义单链表typedef struct Node{ int data; struct Node * next;}Node,* p_Node
2015-03-27 15:43:42
1203
转载 结构体定义 typedef struct 用法详解和用法小结
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于: 若struct node{ }这样来定义结构体的话。在定义 node 的结构体变量时,需要这样写:struct node n; 若用typedef,可以这样写:typedef struct node{}NODE; 。在申请变量时就可以这样写:NODE n;其实就相当于 NODE 是nod
2015-03-23 22:36:16
18747
转载 php 操作数组 (合并,拆分,追加,查找,删除等)
合并数组array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为: Php代码 array array_merge (array array1 array2…,arrayN) 这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的
2015-03-20 13:19:57
478
转载 数据库的三范式及mysql的InnoDB 和MyISAM区别
记录些基础的东西数据库设计三范式在我们设计数据库时,要遵循最基本的三范式第一范式:关系型数据库,每条字段信息不可分解,可以理解为数据都有原子性 举例:数据库中有address这个字段,但我们常常将它分解为province,city,area,这样算是数据库第一范式第二范式:在1NF的基础上,每条数据都是唯一的,也就是说每条数据都有primary key与其对应。要求实体的属性完全依赖于p
2015-03-20 13:17:33
649
原创 PHP常用正则验证信息类
做大型网站或者写API时,数据的合法性异常重要,尤其是在牵扯到一些支付接口,提现接口等,我们可以将验证信息的函数封装成一个验证类,将验证数据的方法全部设为静态方法,直接通过类调用。不仅使用方便,减少代码重复率,代码可读性好,而且易扩展这个类,可以将自己的验证规则扩展到这个类中。代码:<?php/** * 常用的正则表达式来验证信息.如:网址 邮箱 手机号等 */class CheckValid
2015-03-14 20:58:57
786
转载 PHP得到某个时间段时间戳和mktime()函数
mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。语法: mktime(hour,minute,second,month,day,year);实例 :<?php $d =mktime(9, 12, 31, 6, 10, 2015); echo "创建日期是 " .
2015-03-14 20:51:08
3444
原创 PHP中new static()与new self()
先看一段简单的代码<?php abstract class A { public function __construct() { echo "obj is "; } public static function static_create() { return new static(); } public sta
2015-03-09 10:20:40
656
转载 php获取指定月份的第一天开始和最后一天结束的时间戳
<?php /** * 获取指定月份的第一天开始和最后一天结束的时间戳 * * @param int $y 年份 $m 月份 * @return array(本月开始时间,本月结束时间) */function mFristAndLast($y = "", $m = ""){ if ($y == "") $y = date("Y"); if ($m == "") $m =
2015-03-09 09:31:27
2008
转载 php两个for循环实现无限级分类
这种方法是很常见、很传统的一种,先看表结构 表:category id int 主键,自增 name varchar 分类名称 pid int 父类id,默认0 顶级分类的 pid 默认就是0了。当我们想取出某个分类的子分类树的时候,基本思路就是递归,当然,出于效率问题不建议每次递归都查询数据库,通常的做法是先讲所有分类取出来,保存到PHP数组里,再进行处理,最后
2015-03-05 19:05:55
4835
原创 php-memcached内存缓存的使用
在大型网站开发中,缓存的使用是必要的,有时候我们会尝试自己编写缓存类,通过文件缓存来使网站速度加快。但是,文件缓存也是需要通过文件I/O来存取缓存数据,提升效果并不明显。所以推荐大家使用内存缓存—— memcache1 : 什么是内存缓存? 内存缓存是将数据存放到服务器的内存当中,存取速度极快。目前来说,内存缓存是最快的一种缓存,当然也有所说的寄存器,但是不太靠谱。2:
2014-11-20 17:56:09
978
原创 最小的利克瑞尔数196
196算法 一个数正读反读都一样,我们就把它叫做“回文数”。随便选一个数,不断加上把它反过来写之后得到的数,直到得出一个回文数为止。例如,所选的数是67,两步就可以得到一个回文数484: 67+76=143 143+341=484 把69变成一个回文数则需要四步: 69+96=165 165+561=726 726+627=1353
2014-11-09 14:13:17
4704
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人