php进阶
文章平均质量分 78
lifushan123
这个作者很懒,什么都没留下…
展开
-
PHP 垃圾回收机制
PHP垃圾回收机制的目的就是为了在session文件过期以后自动销毁删除这些文件。我们需要详细了解其原理,以便灵活运用这个垃圾回收j机制。PHP语言同其他语言一样,具有垃圾回收机制。那么今天我们要为大家讲解的内容就是关于PHP垃圾回收机制的相关问题。希望对大家有所帮助。PHP strtotime应用经验之谈PHP memo转载 2015-05-25 00:27:15 · 896 阅读 · 0 评论 -
php变量覆盖经验解说
1[b].变量没有初始化的问题(1):[/b] http://www.2cto.com/Article/201211/172403.html $updateinfo['password'] = $newpassword;里面的数组没有初始化类似这样的赋值,我们在挖洞的时候搜索类似updateinfo这样的关键字看看 是否初始化,如果没有。。。且reg转载 2015-05-05 17:46:55 · 1263 阅读 · 0 评论 -
从瀑布模型、极限编程到敏捷开发
从瀑布模型、极限编程到敏捷开发---软件开发管理者思维的变化Jack zhai 软件开发是一种对人类智慧的管理,对人大脑思维的“工厂化”管理。人是有感情的、有情绪的、变化的、相对独立的工作单元,这与冰冷的机器是不可比的,所以在中国的历史上,管理人是最难的工作;“学而优则仕”的观点就是让最聪明的人应该选出来做官,做官就是管理人的。软件开发不仅是代码编程,而是人员的有效组织,如何既发挥转载 2015-05-05 17:32:16 · 392 阅读 · 0 评论 -
记录PHP错误日志
PHP日志记录方法PHP一直被认为是一种上不了台面的语言,主要是因为它大量的依靠各种函数。但事实上PHP也是网站中使用最广的语言,这跟它的简单方便有关。相比起其他网站语言来说,PHP没有自己的server,需要依赖Apache等服务器,如果你使用Tomcat,你就会明显感觉到PHP少了一个后台控制台,在Tomcat的控制台里你可以事实看到程序输出的日志信息。而PHP就缺少了这种能力,当你遇转载 2015-05-13 00:59:42 · 470 阅读 · 0 评论 -
PHP 自定义日志记录功能类
此文作者的日志是单一日志,加数学序号扩展。我现在用的是日期日志,应用功能环境不一样,实现的东西有些不同。对于现在的应用程序来说,日志的重要性是不言而喻的。很难想象没有任何日志记录功能的应用程序运行在生产环境中。日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。在生产环境中,日志是查找问题来源的重要依据。应用程序运行时的转载 2015-05-13 01:14:29 · 834 阅读 · 0 评论 -
CSRF攻击的原理及防范
1、引言跨站点请求伪造(Cross—Site Request Forgery).以下简称CSRF。是一种广泛存在的网站漏洞。Gmail、YouTube等著名网站都有过CSRF漏洞.甚至包括“ING DIRECT”这样的荚国第四大储蓄银行的金融机构网站。2009年3月著名网络安全机构SANS与MITRE结合来自全球超过30个软件工作者及安全专家,将CSRF列为最危险的25个编程错误之一。转载 2015-05-05 17:32:13 · 1424 阅读 · 0 评论 -
敏捷开发模式下的质量管理
前几天,笔者与一位在大型互联网公司从事质量保证的朋友交谈,作为互联网产品质量和测试的负责人,他最近负责的质量管理方面遇到了很多困难。主要有:1)测试团队在敏捷开发模式下的价值非常有限;2)开发人员只顾自已写代码,没有任何文档,测试人员无从下手,3)由于进度的原因,测试人员测试的时间非常有限,上线后出现很多问题;4)由于测试人员得不到开发团队的认可,离职率非常高;5)质量部门无法收集到数据,不能进行转载 2015-05-05 17:33:05 · 4098 阅读 · 0 评论 -
如何解决PHP哈希函数的碰撞
最近想使用Hash函数来根据一个字符串来生成一个惟一的值,但是没找到好用的Hash函数,像PHP内置的MD5、SHA等哈希函数生成的值太长,我没法用,想截取,这样做又担心会出现哈希碰撞,特来拜求高人们用的是什么哈希函数虽然说采用什么哈希算法要看数据而定,但连MD5再嫌长,可真的有些难办了。其实我很想听听为什么“哈希函数生成的值太长,我没法用”。如果是没有任何评估,单凭感觉就这么说,那真的太原创 2015-05-01 00:52:47 · 776 阅读 · 0 评论 -
测试驱动开发在PHP中的应用
1. TDD测试驱动开发(Test-Driven Development, TDD),是近年来兴起的一种软件开发方法。作为一项最佳实践,测试驱动开发在XP方法中占有重要地位。其对开发效率、代码健壮性的显著改进已被越来越多的实例项目所证实。TDD的主要精神可以概括为“测试先行,快速反馈”。在有实际功能代码之前就开始编写测试代码,通过测试来反映设计,使得测试代码成为事实上的设计文档。一开始转载 2015-05-03 23:35:12 · 429 阅读 · 0 评论 -
测试驱动开发感悟
最近听到了很多关于软件质量的话题,自己前段时间也参加个PMP(项目管理)的培训,所以一时对于质量控制特别感兴趣,在这里想和大家共同讨论下! 软件质量,是所有人都很关心的东西。我们在开发过程中为了保证质量,从中引进了软件测试。它在整个的过程中起到的作用不言而预,但是它也存在一些问题: 1、在软件测试中要保证软件的高质量就必须增加项目的成本,从而需要增加测试人员,延长项目时间,购买或学习测转载 2015-05-03 23:34:29 · 501 阅读 · 0 评论 -
PHP哈希表碰撞攻击原理
最近哈希表碰撞攻击(Hashtable collisions as DOS attack)的话题不断被提起,各种语言纷纷中招。本文结合PHP内核源码,聊一聊这种攻击的原理及实现。哈希表碰撞攻击的基本原理哈希表是一种查找效率极高的数据结构,很多语言都在内部实现了哈希表。PHP中的哈希表是一种极为重要的数据结构,不但用于表示Array数据类型,还在Zend虚拟机内部用于存储上下文环境信息(执行转载 2015-05-01 00:51:00 · 447 阅读 · 0 评论 -
看看PHP迭代器的内部执行过程
下面我们来了解如何实现一个自定义的迭代器,然后再开始慢慢理解迭代器的内部工作原理。先来看一个官方的例子:class myIterator implements Iterator { private $position = 0; private $array = array( "first_element", "second_element转载 2015-05-01 00:48:17 · 353 阅读 · 0 评论 -
关于敏捷开发的若干思考
1、敏捷开发中是否不需要文档?敏捷开发常常需要快速的迭代,因此对文档的需求不如传统开发中那么严格。传统开发中文档一般是作为开发过程中的沟通媒体,而敏捷开发中由于对开发周期的缩短,没有时间编写详细的文档,沟通通过站立晨会等快速沟通方式。文档一般只是作为存档而用。 2、产品经理的定位?产品经理通过于用户进行沟通,确定产品需求,然后再与开发人员沟通,让开发懂得需求。可以说转载 2015-05-03 23:35:46 · 621 阅读 · 0 评论 -
测试驱动开发全功略
{关键字}测试驱动开发/Test Driven Development/TDD测试用例/TestCase/TC设计/Design重构/Refactoring{TDD的目标}Clean Code That Works这句话的含义是,事实上我们只做两件事情:让代码奏效(Work)和让代码洁净(Clean),前者是把事情做对,后者是把事情做好。想想转载 2015-05-03 23:33:07 · 460 阅读 · 0 评论 -
PHP数据结构预热:PHP的迭代器
迭代器有时又称光标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如list或vector)上遍访的接口,设计人员无需关心容器物件的内容。各种语言实作Iterator的方式皆不尽同,有些面向对象语言像Java, C#, Python, Delphi都已将Iterator的特性内建语言当中,完美的跟语言整合,我们称之隐式迭代器(implicit iterator),转载 2015-05-01 00:46:16 · 331 阅读 · 0 评论 -
php五大运行模式CGI,FAST-CGI,CLI,ISAPI,APACHE模式浅谈
做 php 开发的应该都知道 php 运行模式概念吧,本文将要和大家分享的是关于php目前比较常见的五大运行模式:包括cgi 、fast-cgi、cli、isapi、apache模块的DLL ,下面作者就这五大运行模式做一些自己的分析,有不对的地方,还请留言指正。CGI运行模式CGI即通用网关接口(Common Gateway Interface),它是一段程序,通俗的讲CGI就象是一座桥转载 2015-04-28 00:35:27 · 349 阅读 · 0 评论 -
DRY原则和Shy原则 .
保障可维护性的主要诀窍是遵循DRY原则和Shy原则。 在一个系统的整个生命周期里,理解和改动这类维护工作的比例一般非常之高。为了维护的方便,要尽量将系统划分为可以独立理解与改动的模块。这就要在设计的时候注重DRY原则与Shy原则。不过,这两条原则有一定的冲突,并不总能兼得,于是在追求的时候要重视分寸。维护者的两大困扰有两种情况会给维护者增添很大的麻烦:一种是为了调整一个效果,要改动无数转载 2015-04-29 00:47:45 · 382 阅读 · 0 评论 -
【PHP】在php文件上传时需要注意的几个细节
php新手童鞋们在做文件上传功能时需要注意以下几点:1). 首现要在php.ini中开启文件上传;2). 文件上传表单的提交方式必须是post,即;3). 上传表单一定要记住在form标签中写上enctype=”multipart/form-data”;4). 设定 type=”file” 的表单控件,并且必须具有name属性值;5). 为了上传成功,必须保转载 2015-05-05 17:48:16 · 1452 阅读 · 0 评论 -
深入PHP中的HashTable结构详解
HashTable是Zend引擎中最重要、使用最广泛的数据结构,它被用来存储几乎所有的东西。1.2.1 数据结构HashTable数据结构定义如下:复制代码 代码如下:typedef struct bucket { ulong h; // 存放hash uint nKeyLength; void *pData; // 指向value,是用户数据的副本转载 2015-04-29 00:49:14 · 418 阅读 · 0 评论 -
php的执行方式、执行过程与加速工具
一、php有两种执行方法:1、web服务器调用php执行。常见的有2种组合方式:apache将php安装成apache的一个模块就可以;ngnix与php的组合是通过Fastcgi来完成的。在这里了解是这么回事就好,以后会深入探讨的。2、当成脚本的形式通过php.exe独立运行,即通过php.exe -f filename [参数] [参数] 就可以运行指定的php文件。这样的好处转载 2015-05-25 00:25:17 · 781 阅读 · 0 评论 -
分布式存储架构 php+gridfs+varnish+nginx
[php]代码库view sourceprint?backend default { .host = "127.0.0.1"; .port = "8080"; }转载 2015-05-19 00:29:07 · 1193 阅读 · 0 评论 -
php 使用 hdfs 分布式存储海量小文件
php可以通过thrift连接hbase,同样php可以通过thrift读取hadoop资源(HDFS资源)。准备:php需要thrift的libarythrift 安装参见 我上一篇文章packages:hadoop-0.20.2\src\contrib\thriftfs\gen-php // 搜索hadoop 下载源码 ,在hadoop源码包里转载 2015-05-19 00:23:02 · 726 阅读 · 0 评论 -
使用Apache Zookeeper分布式部署PHP应用程序
这篇文章实在不错,实在忍不住翻译下来,希望对大家有用。Apache Zookeeper是我最近遇到的最酷的技术,我是在研究Solr Cloud功能的时候发现的。Solr的分布式计算让我印象深刻。你只要开启一个新的实例就能自动在Solr Cloud中找到。它会将自己分派到某个分片中,并确定出自己是一个Leader(源)还是一个副本。不一会儿,你就可以在你的那些服务器上查询到了。即便某些服翻译 2015-05-19 00:22:32 · 582 阅读 · 0 评论 -
使用Redis+php-resque实现消息队列
一、Redis安装1. 获取源码shell># cd /usr/local/srcshell># wget http://download.redis.io/releases/redis-2.6.16.tar.gzshell># tar -zxvf redis-2.6.16.tar.gzshell># cd redis-2.6.162. 编译、安装shell>#转载 2015-05-18 01:12:55 · 2465 阅读 · 0 评论 -
RabbitMQ消息队列在PHP下的应用
消息队列的实现中,RabbitMQ以其健壮和可靠见长.公司的项目中选择了它作为消息队列的实现.关于MQ的机制和原理网上有很多文章可以看,这里就不再赘述,只讲几个比较容易混淆的问题1,binding key和routing key binding key和routing key是都不过是自己设置的一组字符,只是用的地方不同,binding key是在绑定交换机和队列时候通过方法传递转载 2015-05-18 01:14:32 · 391 阅读 · 0 评论 -
用PHP实现守护进程任务后台运行与多线程(php-resque使用说明)
日志未经声明,均为AlloVince原创。版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可。Share on twitterShare on facebookShare on google_plusone_shareShare on sinaweiboShare on douban消息队列处理后台任务带来的问题项目中转载 2015-05-18 00:55:54 · 786 阅读 · 0 评论 -
什麼是REST跟RESTful?
Update(2008/5): 事隔一年多,我對於 Rails 如何應用 RESTful 這個概念有完全不同的切入角度,詳見 Practical Rails2 投影片。Ruby on Rails 1.2 的一個重要進展是 RESTful,在了解怎麼用之前,我們要先了解什麼是 REST(Representational State Transfer)?什麼是REST?REST转载 2015-05-15 00:45:30 · 390 阅读 · 0 评论 -
RESTful API 设计最佳实践
目前互联网上充斥着大量的关于RESTful API(为了方便,以后API和RESTful API 一个意思)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?API格式如何?你的API是否应该加入版本信息?背景目前互联网上充斥着大量的关于RESTful API(为了方便,以后API和RESTful API 一个意思)如何设计的文章,然而却没有一个”万能“的设计标准:如转载 2015-05-15 00:44:48 · 402 阅读 · 0 评论 -
单例模式与工厂模式 的mysql数据访问类
<?php //单例模式 //定义类 class Singleton{ //静态属性:保存对象 private static $obj; //杜绝一切可以产生多个新对象的方式 private function __construct(){} private function __clone(){} //静态方法 public static functi原创 2015-05-16 01:30:49 · 482 阅读 · 0 评论 -
安全域的划分
安全域概述 •网络安全域是指同一系统内有相同的安全保护需求,相互信任,并具有相同的安全访问控制和边界控制策略的子网或网络,且相同的网络安全域共享一样的安全策略。广义可理解为具有相同业务要求和安全要求的IT系统要素的集合。 网络安全域从大的方面分一般可划分为四个部分:本地网络、远程网络、公共网络、伙伴访问。而在不同的安全域之间需要设置防火墙以进行安全保护。如下图(双击下图放大显示转载 2015-05-06 00:02:25 · 20374 阅读 · 0 评论 -
基线的定义
基线(Baseline)说起. 基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础.所以,当基线形成后,项目负责SCM的人需要通知相关人员基线已经形成,并且哪儿可以找到这基线了的版本.这个过程可被认为内部的发布.至于对外的正式发布,更是应当从基线了的版本中发布. 基线是项目储存库中每个工件版本在特定时期的一个“快照”。它提供一个正式标准,随后的工作基于此标准,转载 2015-05-06 00:02:38 · 662 阅读 · 0 评论 -
一些需要禁用的PHP危险函数(disable_functions)
phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。 危险等级:高 system() 功能描述:允许转载 2015-05-05 17:48:46 · 1221 阅读 · 0 评论 -
总结 XSS 与 CSRF 两种跨站攻击
XSS:跨站脚本(Cross-site scripting)CSRF:跨站请求伪造(Cross-site request forgery)在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式。在这个年代, 参数化查询 已经成了普遍用法,我们已经离 SQL 注入很远了。但是,历史同样悠久的 XSS 和 CSRF 却没有远离转载 2015-05-05 17:44:07 · 357 阅读 · 0 评论 -
PHP设计模式
专栏:http://blog.csdn.net/column/details/phpshejimoshi.htmlhttp://developer.51cto.com/art/201004/195765.htmPHP 24种设计模式 代码中领会http://wenku.baidu.com/link?url=S3qwr_QVe4RnhICqM-H5pPwvpd1AJz转载 2015-05-05 17:39:21 · 443 阅读 · 0 评论 -
PHP SPL,被遗落的宝石
Rafael Dohms 上面的篇文章 让我为之惊艳,忍不住就翻译了下来,同时补充了部分内容。SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,并且从 PHP5.3 已逐渐的成熟。SPL 其实在所有的 PHP5 开发环境中被内置,同时无需任何设置。似乎众多的 PHP 开发人员基本没有使用它,甚至闻所未闻。究其原因,可以追述到它那转载 2015-04-30 02:47:50 · 334 阅读 · 0 评论 -
php面向对象(OOP)编程完全教程地址
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都是非常有意义的。下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法。 我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是,在PHP中,操作数转载 2015-05-10 01:27:53 · 375 阅读 · 0 评论 -
PHP中的错误处理、异常处理机制
在编写php程序时,错误处理是一个重要的部分。如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: $a = fopen('test.txt','r'); //这里并没有对文件进行判断就打开了,如果文件不存在就会报错?> 那么正确的写法应该如下: if(file_exists(转载 2015-04-30 02:47:43 · 660 阅读 · 0 评论 -
session多服务器共享的方案梳理
session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明白进行共享背后的思想和出发点。我喜欢按照这样的方式来问(或者去搞清楚):为什么要session要进行共享,不共享会什么问题呢? php中session的原理,以前做了一下总结,可以参考:http://www.cnblogs.com/wangtao_20/archive/2011/02/16/1955659.html转载 2015-04-20 15:30:59 · 344 阅读 · 0 评论 -
php安全
PHP 作为一种强大的语言,无论是以模块还是 CGI的方式安装,它的解释器都可以在服务器上访问文件、运行命令以及创建网络连接等。这些功能也许会给服务器添加很多不安全因素,需要正确地安装和配置 PHP,以及编写安全的代码。一、CGI模式安装安全二、以Apache模块安装安全当 PHP 以 Apache 模块方式安装时,它将继承 Apache 用户(通常为“nobody”)的权转载 2015-04-23 21:17:08 · 332 阅读 · 0 评论 -
php优缺点
php优点1. 跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换 PostgreSQL或者Oracle,支持N种数据库。(N >= 10)2. 语法简单,如转载 2015-04-23 19:40:04 · 453 阅读 · 0 评论