![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
xiaoao89757
这个作者很懒,什么都没留下…
展开
-
PHP预定义接口
SPL提供了6个迭代器接口:Traversable遍历接口(检测一个类是否可以使用 foreach 进行遍历的接口)Iterator迭代器接口(可在内部迭代自己的外部迭代器或类的接口)IteratorAggregate聚合式迭代器接口(创建外部迭代器的接口)OuterIterator迭代器嵌套接口(将一个或多个迭代器包裹在另一个迭转载 2015-04-10 09:00:03 · 201 阅读 · 0 评论 -
php高效率写法及其原理
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存转载 2015-04-10 09:56:10 · 382 阅读 · 1 评论 -
PHP中的魔术方法和魔术常量简介和使用
有些东西如果不是经常使用,很容易忘记,比如魔术方法和魔术常量。魔术方法(Magic methods)PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一转载 2015-04-10 09:56:58 · 229 阅读 · 0 评论 -
看看PHP迭代器的内部执行过程
下面我们来了解如何实现一个自定义的迭代器,然后再开始慢慢理解迭代器的内部工作原理。先来看一个官方的例子:01class myIteratorimplements Iterator {02 private$position = 0;03 private$array转载 2015-04-10 09:14:37 · 189 阅读 · 0 评论 -
PHP的反射机制
介绍:PHP5添加了一项新的功能:Reflection。这个功能使得phper可以reverse-engineer class, interface,function,method and extension。通过PHP代码,就可以得到某object的所有信息,并且可以和它交互。反射是什么?它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信转载 2015-04-10 09:26:54 · 181 阅读 · 0 评论 -
PHP开发者应了解的24个库
作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库。下面是我曾经遇到过最酷的24个库。你最喜欢的库没有在这个列表里面?那就在评论中分享吧!1. Dispatch – 微框架Dispatch是一个PHP小框架。它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序。这对API、简单的站点或原型来说是转载 2015-04-10 09:58:06 · 682 阅读 · 0 评论 -
PHP二维数组排序
PHP经过长时间的发展,很多用户都很了解它了,上网收集了一些关于PHP二维数组的相关知识,这里和大家一起分享一下,PHP本身是有一个多维数组排序的函数的。 bool array_multisort(array$ar1 [,mixed$arg [,mixed$... [,array$...]]]) 下面是手册当中对于array_multisort函数的描述: array_mult原创 2015-04-10 11:46:01 · 154 阅读 · 0 评论 -
php异常tips
try …catch …catch …finally …try中如果有die或者exit,则程序中断,不执行finally。try中如果有return,也会继续执行到finally,如果finally也有return,返回此return的值。原创 2015-04-10 08:55:41 · 165 阅读 · 0 评论 -
PHP 5.5 新特性 包括yield、finally、list、empty、opcache等
PHP5.5 前不久前刚刚发布,里面的新特性有什么?官方文档在这里:http://www.php.net/manual/zh/migration55.new-features.php1 生成器 yield关键字yield的中文文档在这里:http://php.net/manual/zh/language.generators.overview.php查看文档,能知道yield的转载 2015-04-10 09:12:39 · 384 阅读 · 0 评论 -
浅谈PHP代码设计结构
编码多年,各种代码日夜相伴,如何跟代码友好的相处,不光成为职业生涯的一种回忆,也是编写者功力的直接显露。如何看待程序和代码呢?那就让我们从程序定义来谈起。如果从业务最终呈现来看,一个程序可以看成是一个真实业务需求的逻辑代码映射。如果从程序逻辑结构看,程序就是数据结构加算法的结合。这样看,为满足更多的业务需求,更好的满足这些需求,就需要更多的程序代码,当程序代码堆积达到一定数量后,如何管转载 2015-04-10 09:59:24 · 199 阅读 · 0 评论 -
Memcached命令
Memcache 的命令行用法:1、启动Memcache 常用参数 memcached 1.4.3 -p 设置端口号(默认不设置为: 11211) -U UDP监听端口 (默认: 11211, 0 时关闭) -l 绑定地址 (默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本转载 2015-04-10 10:00:07 · 184 阅读 · 0 评论 -
解析php中die(),exit(),return的区别
die()停止程序运行,输出内容exit是停止程序运行,不输出内容return是返回值die是遇到错误才停止exit是直接停止,并且不运行后续代码,exit()可以显示内容。return就是纯粹的返回值了,但是也不会运行后续代码exit(0):正常运行程序并退出程序;exit(1):非正常运行导致退出程序;return():返回函数,若在主函数中,则会退出函数并返回原创 2015-04-10 08:52:21 · 332 阅读 · 0 评论 -
PHP SPL,被遗落的宝石
SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,并且从 PHP5.3 已逐渐的成熟。SPL 其实在所有的 PHP5 开发环境中被内置,同时无需任何设置。似乎众多的 PHP 开发人员基本没有使用它,甚至闻所未闻。究其原因,可以追述到它那阳春白雪般的说明文档,使你忽略了「它的存在」。SPL 这块宝石犹如铁达尼的「海洋之心」般,被沉入海转载 2015-04-10 09:17:31 · 278 阅读 · 1 评论 -
mysql int长度
mysql中int类型的最大长度是11想要更长的话,就使用bigint吧bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数 int 从 -2^31原创 2015-04-10 11:28:39 · 876 阅读 · 0 评论 -
php设计模式
创建型模式:建造者模式,工厂模式,单例模式 代码大量复用结构型模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,代理模式 帮助我们创建和使用复杂的结构行为型模式:命令模式,迭代器模式,观察者模式,状态模式,策略模式 描述了对象在系统中的通信方式以及程序的逻辑控制流 1. 单例模式用来限制应用程序,使其原创 2015-04-11 10:26:36 · 227 阅读 · 0 评论 -
PHP漏洞全解(二)-命令注入攻击
本文主要介绍针对PHP网站常见的攻击方式中的命令攻击。Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此。如果使用了被污染数据,命令注入漏洞就产生了。命令注入攻击PHP中可以使用下列5转载 2015-04-11 16:45:04 · 254 阅读 · 0 评论 -
php魔术方法
__construct__destruct__call__callStatic__get__set__isset__unset__sleep__wakeup__toString__set_state__clone__autoload1.__get,__set 针对private的私有属性。 __get(原创 2015-04-11 11:23:21 · 229 阅读 · 0 评论 -
php数组实现队列和栈
四个重要的函数array_push 将元素压入数组尾部array_unshift 将元素压人数组头部array_pop 删除数组最后面的元素array_shift 删除数组最前面的元素实现队列:array_push插入元素,array_shift删除元素,先进先出实现栈:array_unshift插入元素,array_shif原创 2015-04-11 16:32:49 · 901 阅读 · 2 评论 -
PHP漏洞全解(一)-PHP网站的安全性问题
针对PHP的网站主要存在下面几种攻击方式:1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request转载 2015-04-11 16:38:31 · 248 阅读 · 0 评论 -
PHP漏洞全解(三)-客户端脚本植入
本文主要介绍针对PHP网站的客户端脚本植入攻击方式。所谓客户端脚本植入攻击,是指将可以执行的脚本插入到表单、图片、动画或超链接文字等对象内。当用户打开这些对象后,黑客所植入的脚本就会被执行,进而开始攻击。客户端脚本植入(Script Insertion),是指将可以执行的脚本插入到表单、图片、动画或超链接文字等对象内。当用户打开这些对象后,攻击者所植入的脚本就会被执行,进而开始攻击。可转载 2015-04-11 16:50:06 · 759 阅读 · 0 评论 -
PHP漏洞全解(四)-xss跨站脚本攻击
本文主要介绍针对PHP网站的xss跨站脚本攻击。跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息的方式诱使管理员浏览,从而获得管理员权限,控制整个网站。攻击者利用跨站请求伪造能够轻松地强迫用户的浏览器发出非故意的HTTP请求,如诈骗性的电汇请求、修改口令和下载非法的内容等请求。XSS(Cross Site Scripting),意为跨网站脚本转载 2015-04-11 16:54:59 · 346 阅读 · 0 评论 -
PHP漏洞全解(八)-HTTP响应拆分
本文主要介绍针对PHP网站HTTP响应拆分,站在攻击者的角度,为你演示HTTP响应拆分。HTTP请求的格式1)请求信息:例如“Get /index.php HTTP/1.1”,请求index.php文件2)表头:例如“Host: localhost”,表示服务器地址3)空白行4)信息正文“请求信息”和“表头”都必须使用换行字符(CRLF)来结尾,空白行只能包含换行符,不转载 2015-04-11 18:32:41 · 594 阅读 · 0 评论 -
PHP漏洞全解(九)-文件上传漏洞
本文主要介绍针对PHP网站文件上传漏洞。由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 PHP解释器,就可以在远程服务器上执行任意PHP脚本,即文件上传漏洞。一套web应用程序,一般都会提供文件上传的功能,方便来访者上传一些文件。下面是一个简单的文件上传表单form act转载 2015-04-11 18:40:10 · 249 阅读 · 0 评论 -
修改PHP session 默认时间方法
PHP中的session有效期默认是1440秒(24分钟),如果我们要让session记不过期怎么办呢,下在我们先来介绍在不修改程序是最好的方法了,因为如果修改程序,测试部一定非常郁闷像我一样,那么只能修改系统环境配置,其实很简单,打开php.ini设置文件,修改三行如下:1、session.use_cookies把这个的值设置为1,利用cookie来传递sessionid2、转载 2015-04-11 18:41:42 · 836 阅读 · 0 评论 -
PHP漏洞全解(五)-SQL注入攻击
本文主要介绍针对PHP网站的SQL注入攻击。所谓的SQL注入攻击,即一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。SQL注入攻击(SQL Injection),是攻击者在表单中提交精心构造的sql语句,改动原来的sql语句,如果web程序没有对提交的数据经过检查,那么就会转载 2015-04-11 18:01:53 · 280 阅读 · 0 评论 -
PHP漏洞全解(六)-跨网站请求伪造
本文主要介绍针对PHP网站的跨网站请求伪造。在CSRF所有攻击方式中包含攻击者伪造一个看起来是其他用户发起的 HTTP 请求,事实上,跟踪一个用户发送的 HTTP 请求才是攻击者的目的。CSRF(Cross Site Request Forgeries),意为跨网站请求伪造,也有写为XSRF。攻击者伪造目标用户的HTTP请求,然后此请求发送到有CSRF漏洞的网站,网站执行此请求后,引发跨站转载 2015-04-11 18:04:00 · 212 阅读 · 0 评论 -
PHP漏洞全解(七)-Session劫持
本文主要介绍针对PHP网站Session劫持。session劫持是一种比较复杂的攻击方法。大部分互联网上的电脑多存在被攻击的危险。这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持可能。服务端和客户端之间是通过session(会话)来连接沟通。当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。每个用户的session都是独立的,并且由服务器来维护。每个转载 2015-04-11 18:29:13 · 262 阅读 · 0 评论 -
<div>和<span>的比较
和的比较 1.相同点:标签和标签都是用来划分区间但是没有实际语义的标签;两者都是主要用于应用样式表。 2.不同点:标签属于块级元素,浏览器在它的前后会自动添加一个换行标签;标签属于内联元素,它的前后不会自动添加换行标签。 如果在网页布局中要将某两个内容显示在同一行内,最简单的方法就是将它们用标签包装起来。比如,一个页面有相邻的两个元素,一个是,另一个是。要想将它们显示在同一行,可原创 2015-04-12 17:29:25 · 454 阅读 · 0 评论 -
apache学习
http://man.chinaunix.net/newsoft/ApacheManual/原创 2015-04-12 16:53:26 · 186 阅读 · 0 评论 -
PHP OPCode缓存:APC详细介绍
前言PHP语言在性能上相对于其他编译型语言来说性能算不上突出,但是使用了OPCode缓存后性能提升还是很明显的.常见的主要有 Eaccelerator,XCache,APC本文主要介绍APC的使用. APC的介绍The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is t转载 2015-04-12 16:58:41 · 243 阅读 · 0 评论 -
php PEAR
是一个代码库类似于linux中的yum原创 2015-04-12 17:09:27 · 189 阅读 · 0 评论 -
让HTTP萌娘帮你记住状态码吧
Http 状态码是做Web开发的必备的基础知识,面试中也会经常出现这方面的考题。但是要记住全部的状态码不是一件容易的事,要不让 http状态码萌娘帮你记住一下?(PS:萌死不偿命噢。)200 欢迎回来,主人 (正常;请求已完成。 )301 人家搬家了 (已移动 — 请求的数据具有新的位置且更改是永久的。 )307 不是这里,换个地方啦 (重新请求的URL,客户端自动重新请求新的地址)400转载 2015-04-12 17:47:09 · 189 阅读 · 0 评论 -
7层模型
应用层与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,NFS,SMTP等。表示层这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或A转载 2015-04-13 08:43:55 · 352 阅读 · 0 评论 -
如何让php对页面的缓存进行控制 php处理请求的浏览器缓存处理
缓存的主要作用是防止用户频繁刷新网站页面,导致服务器数据库负担,既要保证信息更新的及时性,也要保证缓存能被充分利用。http协议里控制浏览器缓存的头有三个Cache-Control,Expires,Last-Modified,在PHP下控制请求页面的浏览器缓存主要是利用php的 header()函数进行设置的。下面来了解一下这三个http协议里面控制缓存头的含义以及如何使用php设置这三种头标的方转载 2015-04-14 09:37:43 · 258 阅读 · 0 评论 -
大化设计模式笔记
1. 简单工厂模式代码无错不能算是最优的程序要:可维护、可扩展、灵活尽量使用面向对象降低程序的耦合度尽量复用,而不是复制,这样可以降低维护的难度只有把功能分离开,才可以降低耦合度,利于维护和扩展增加功能不改变其它功能的代码比如编写计算器程序时,不要用if。。。else。。。,否则在增加功能时会影响到其它代码可以使用集成和多态解决这一问题每个计算方法都写成一个单独原创 2015-04-14 13:28:12 · 313 阅读 · 0 评论 -
php多路复用(多线程)
Author:David | English Version 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】URL:http://blog.iyi.cn/start/2006/11/php_8.html最近研究php多线程的问题,发现中文资源少的可怜,仅有的几篇文章被转了又转,但文中内容价值有限。搜索过程中发现国外很多网站引用的一篇文章写的不错,所以翻译过来。版转载 2015-04-14 18:54:38 · 259 阅读 · 0 评论 -
PHP实现常见查找和排序算法
1、 冒泡排序思想:两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。示例: 49 13 13 13 13 13 13 13 38 49 27 27 27 27 27 2765 38 49 38 38 38 38 3897 65 38 49 49 49 49 4976 97 65 49 49 49 49原创 2015-04-15 08:59:06 · 289 阅读 · 0 评论 -
PHP array_walk() 函数
定义和用法array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。典型情况下 function 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。如果 function 函数需要的参数比给出的多,则每次 array_walk() 调用 func转载 2015-04-14 20:47:07 · 156 阅读 · 0 评论 -
php并发利器 Gearman尝试
PHP 没有提供直接的并发功能。要实现并发,必须:function asyn_send(){$fp = fsockopen('localhost', 80, &$errno,&$errstr, 5);if(!$fp){echo "$errstr ($errno)/n";}fputs($fp, "GET/sync.php?param=1¶m2=2&a=c/r/n"转载 2015-04-14 18:41:33 · 280 阅读 · 0 评论 -
php gzip压缩输出的实现方法
一、gzip介绍 gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公开发布,版本号是0.1,目前的稳定版本是1.2.4。 Gzip主要用于Unix系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件转载 2015-04-14 09:31:47 · 224 阅读 · 0 评论