php
cclehui
http://www.luojisiwei-inc.com/
展开
-
windows环境下php和Php扩展编译,扩展dll文件编译
工作过程中需要编译php扩展的dll格式文件 , 经过1天的折腾,终于编译出来了,下面以编译php5.3.28 下runkit扩展为例 , 官方的windows环境下php编译过程参考下面这两篇文章:https://wiki.php.net/internals/windows/stepbystepbuildhttp://blog.csdn.net/mycwq/article/detai原创 2015-05-08 10:07:50 · 11834 阅读 · 0 评论 -
php持久登录、记住我功能实现
永久登录指的是在浏览器会话间进行持续验证的机制。换句话说,今天已登录的用户明天依然是处于登录状态,即使在多次访问之间的用户会话过期的情况下也是这样。永久登录的存在降低了你的验证机制的安全性,但它增加了可用性。不是在用户每次访问时麻烦用户进行身份验证,而是提供了记住登录的选择。据我观察,最常见的有缺陷的永久登录方案是将用户名和密码保存在一个cookie中。这样做的诱惑是可以理解的——不需要提示用转载 2014-03-02 10:37:38 · 11305 阅读 · 0 评论 -
nginx、cgi通信原理
nginx+fastcgi+php-fpm是很多大型网站的服务端架构,也都知道fastcgi在性能上比CGI优异很多,但很少有人解释nginx是怎么跟fastcgi通信的,下面我们来解释下网上对CGI的工作原理一般是这么定义的:客户端web浏览器浏览某个主页后,利用一定的方式提交数据,并通过HTTP协议向Web服务器发出请求,服务器端的HTTP Daemon(守护进程)将描述的主页信息通过原创 2014-02-28 11:56:22 · 7148 阅读 · 0 评论 -
MongoDB 地理位置索引的实现原理
地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一。我们知道,通常的数据库索引结构是B+ Tree,如何将地理位置转化为可建立B+Tree的形式,下文将为你描述。 首先假设我们将需要索引的整个地图分成16×16的方格,如下图(左下角为坐标0,0 右上角为坐标16,16): 单纯的[x转载 2014-02-13 17:49:27 · 1871 阅读 · 0 评论 -
php amqp消息队列教程1-代码实现实例
两年前曾发过一篇《用Python尝试RabbitMQ》,没想到两年后的今天,基于PHP的amqp资料还是少得可怜,原来的几个扩展也都一个个被废弃,只剩amqp还健在,且被PECL收录。虽说被收录,可官方手册中的信息还是略显单薄。言归正传,amqp扩展的安装就不多说了,可参看前几天发的那篇《给PHP安装amqp扩展》装好了amqp后就可以开始编写代码了:消费者:接收消息逻辑:原创 2014-02-12 14:46:08 · 7480 阅读 · 2 评论 -
php amqp消息队列教程1-了解amqp协议
当前各种应用大量使用异步消息模型,并随之产生众多消息中间件产品及协议,标准的不一致使应用与中间件之间的耦合限制产品的选择,并增加维护成本。AMQP是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。 当然这种降低耦合的机制是基于与上层产品,语言无关的协议。AMQP协议是一种二进制协议,提供原创 2014-02-12 14:44:01 · 2555 阅读 · 0 评论 -
php memcache分布式和要注意的问题
Memcache的分布式介绍memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括内存存储功能,其实现非常简单。至于memcached的分布式,则是完全由客户端程序库实现的。这种分布式是memcached的最大特点。Memcached的分布式是什么意思?这里多次使用了“分布式”这个词,但并未做详细解释。现在开始简单地介绍一下其原理,各个客户端的实原创 2014-02-22 14:10:48 · 4280 阅读 · 1 评论 -
网页中输出漂亮格式的Php数组神器
写网页的时候经常需要在页面中打印数组,但格式特别难看,看看一个html神器吧标签,能非常标准的显示数组格式使用的时候只需要这样打印你的数组就OK了,太好用了,神器!echo "";print_r($arr);echo "";原创 2013-11-26 14:58:42 · 15390 阅读 · 2 评论 -
php array_unshift()修改数组key
众所周知,array_unshift()用来在数组的开头添加元素,但今天突然发现如果数组的键值是数字类型的(或能转成数字类型的),array_unshift()会修改所有键为数字的元素的Key,真是坑啊实例:$a=array(111=>"dddddddddddd","112"=>array("one"=>"orange","two"=>"hhhhh"), "113"=>array(原创 2013-11-25 18:17:59 · 14477 阅读 · 1 评论 -
php unset销毁变量释放内存注意事项
PHP的unset()函数用来清除、销毁变量,不用的变量,我们可以用unset()将它销毁。但是某些时候,用unset()却无法达到销毁变量占用的内存!我们先看一个例子:$s=str_repeat('1',255); //产生由255个1组成的字符串 $m=memory_get_usage(); //获取当前占用内存 unset($s); $mm=memory_get_usage()转载 2013-11-21 10:58:52 · 1165 阅读 · 0 评论 -
给PHP安装amqp扩展
有史以来最坑爹的一次扩展安装,不晓得诸位有没有尝试过…………各种报错啊!有木有?!¥#@%%&*……捣鼓半天,只编译了个0.1.x的扩展版本,瞅了下,擦,函数少的可怜啊- -||| 不行,继续~经过一天的努力,老天总算开眼了,赶紧总结下吧~----------------------------------------------- 我是分割线 ----------转载 2013-11-15 18:19:01 · 5036 阅读 · 0 评论 -
PHP 性能分析工具XHProf使用
当php程序逻辑执行很复杂的时候,可能会带来性能上的问题,为了有效的找到影响性能的代码,推荐大家使用PHP新能分析工具XHProf,该工具能有效的分析每段代码的执行情况,非常好用1、安装配置PHP的扩展XHProf$ wget https://github.com/facebook/xhprof/tarball/master -O xhprof.tar.gz$ tar zxf xhpr原创 2014-03-24 10:11:53 · 4868 阅读 · 0 评论 -
理解php反射机制-1
相信大家在使用Php过程中常常会用到像原创 2014-04-28 10:07:32 · 4100 阅读 · 0 评论 -
php 帕斯卡命名转换成下划线分割命名
有时候需要把一个字符串中的大写转换成 _+小写的f原创 2014-08-29 10:36:42 · 1537 阅读 · 0 评论 -
php pconnect 长连接原理
HP的MySQL持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之。这到底是为啥么。近距离观察后发现,这家伙也不容易啊,要看Apache的脸色,还得听MySQL指挥。对于作为Apache模块运行的PHP来说,要实现MySQL持久化连接,首先得取决于Apache这个web服务器是否支持Keep-Alive。Keep-Alive Keep-Alive是什么东西?它是http转载 2014-07-04 18:57:12 · 7769 阅读 · 1 评论 -
php curl 上传文件
假设server端上传文件处理脚本:原创 2014-08-22 15:27:20 · 17485 阅读 · 2 评论 -
php curl 添加cookie伪造登陆抓取数据
有的网页必须登陆才能看到,这个时候想要抓取信息必须在header里面传递cookie值原创 2014-08-22 17:32:52 · 42725 阅读 · 0 评论 -
php des 加密解密实例
des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库下面是加密解密的实例$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);$iv = mcrypt_create_iv($iv_s原创 2014-03-01 18:28:13 · 29330 阅读 · 1 评论 -
php rsa加密解密实例
php服务端与客户端交互、提供开放api时,通常需要对敏感的部分api数据传输进行数据加密,这时候rsa非对称加密就能派上用处了,下面通过一个例子来说明如何用php来实现数据的加密解密1、加密解密的第一步是生成公钥、私钥对,私钥加密的内容能通过公钥解密(反过来亦可以)下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin目原创 2014-03-01 17:17:02 · 90370 阅读 · 12 评论 -
分布式任务分发框架Gearman教程和PHP实现实例
1、Gearman介绍和使用场景Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相 比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片 resize功能,由于图片resize需要消耗大量计算资源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。原创 2014-02-22 22:19:27 · 18571 阅读 · 0 评论 -
SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析
最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程涉及的关键知识点:1、jquery ajax跨域重定向,要理ajax解跨域重定向,先要了解浏览器对重定向的处理。正常我们请求一个地址,如果server返回302,那么浏览器会再发起一次重定向后的http请求;用jquery ajax发起一次异原创 2014-03-03 14:04:07 · 116118 阅读 · 9 评论 -
理解php反射机制-2
介绍:PHP5添加了一项新的功能:Reflection。这个功能使得phper可以reverse-engineer class, interface,function,method and extension。通过PHP代码,就可以得到某object的所有信息,并且可以和它交互。反射是什么?它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信转载 2014-04-28 10:11:07 · 1952 阅读 · 0 评论 -
PHP面试笔试细节
1、php隐性的三元操作符(?:)优先级问题:例1:$person = $who or $person = "laruence"; //实际上是等同于: $person = empty($who)? "laruence" : $who; 例2$arr = array(1=>1,3=>3); $i =转载 2014-04-28 11:53:18 · 1683 阅读 · 0 评论 -
php设计模式
《PHP设计模式介绍》导言《PHP设计模式介绍》第一章 编程惯用法《PHP设计模式介绍》第二章 值对象模式《PHP设计模式介绍》第三章 工厂模式《PHP设计模式介绍》第四章 单条模式《PHP设计模式介绍》第五章 注册模式《PHP设计模式介绍》第六章 伪对象模式《PHP设计模式介绍》第七章 策略模式《PHP设计模式介绍》第八章 迭代器模转载 2013-09-08 09:58:59 · 988 阅读 · 0 评论 -
php5对象复制、clone、浅复制与深复制
对象复制的由来 为什么对象会有“复制”这个概念,这与PHP5中对象的传值方式是密切相关的,让我们看看下面这段简单的代码 PHP代码 * /** * * 电视机类 * */ * class Television * { * /** * * 屏幕高度 * *转载 2013-09-08 09:54:45 · 10423 阅读 · 2 评论 -
php smtp发送邮件
php通过smtp发送邮件需要通过一个类smtp发邮件的代码如下:require_once 'smtp.php';########################################## $smtpserver = "smtp.sina.com";//SMTP服务器 $smtpserverport = 25;//SMTP服务器端口 $smtpusermail = "g原创 2013-08-19 14:02:09 · 2041 阅读 · 0 评论 -
用curl获取https请求
今天一个同事反映,使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”很明显,验证证书的时候出现了问题。转载 2013-01-22 10:41:04 · 24471 阅读 · 5 评论 -
php简体繁体转换
class utf8_chinese{ private $utf8_gb2312; private $utf8_big5; public function __construct(){ $this->utf8_gb2312 = "万与丑专业丛东丝丢两严丧个转载 2013-01-22 17:06:21 · 4202 阅读 · 2 评论 -
php异常、错误处理机制
在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的。 所以引用以下几中函数。我们先来说异常:首先要明白异常跟错误是不一样的,异常是出现正常逻辑之外的情况,而错误是指运行时出错了,比如,使用了一个未定义的变量等,异常需要抛出(throw)才能被捕捉到,而错误会导致程序执行终止1、通常处理异常的方式是使用try{}catch{}去捕捉有throw抛出的异常t原创 2013-01-26 16:52:53 · 5065 阅读 · 0 评论 -
php性能加速器
zend公司优化了php引擎,提供两款产品用来加速php运行,分别是Zend_Optimizer和ZendGuardLoader,其中ZendGuardLoader用于php5.3和以上版本,Zend_Optimizer用于php5.2和以下版本配置方法:ZendGuardLoader:在php.ini文件最后添加如下配置:zend_extension='/usr/原创 2013-01-25 15:40:55 · 1013 阅读 · 0 评论 -
php 内存管理监测
php中获取内存使用情况的函数是memory_get_usage($flag)这个函数有一个参数$falg,$flag有两个取值true or false1、$flag为true时,得到的是当前脚本使用的实际内存大小(以字节为单位)2、$flag为false时,得到的只是emalloc()函数所记录的内存使用(我的理解好像就是为变量分配内存时所记录的内存大小)原创 2013-01-25 12:17:02 · 833 阅读 · 0 评论 -
php类自动加载机制
php的autoload大致可以使用两种方法:__autoload和spl方法。这两种方法又各有不同的几种使用方法__autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one 复制代码代码如下:function __autoload($class_name) { $path = str_replace('转载 2013-01-26 15:22:46 · 780 阅读 · 0 评论 -
php curl请求信息和返回信息
在用curl抓取网页内容的时候,经常要知道,网页返回的请求头信息,和请求的相关信息,特别是在请求过程中存在重定向的时候获取请求返回头信息对分析请求内容很有帮助下面就是一个请求中存在重定向的例子,我们的目的是要获取最终实际请求的url地址$url='http://www.appchina.com/market/r/489267/com.appshare.android.ilist原创 2012-12-22 14:04:25 · 17517 阅读 · 0 评论 -
php数组和对象的值传递和引用传递
一般的数据类型(int, float, bool)不做这方面的解说了这里详细介绍一下数组和的类的对象作为参数进行值传递的区别数组值传递实例代码:? function main() { $cc = array( 'a','b' );转载 2012-12-13 16:46:26 · 5659 阅读 · 0 评论 -
php中截取中文字符串
1. 截取GB2312中文字符串<?php< ?php//截取中文字符串function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1转载 2012-11-21 18:55:10 · 596 阅读 · 0 评论 -
PHP引用,函数引用,对象引用(初学者必看)
在PHP 中引用的意思是:不同的名字访问同一个变量内容.与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址变量的引用PHP 的引用允许你用两个变量来指向同一个内容[php]$a="ABC";$b =&$a;echo $a;//这里输出:ABCecho $b;//这里输出:ABC$b="EFG";echo $a;//这里转载 2013-04-02 15:45:41 · 845 阅读 · 0 评论 -
PHP json_encode中文乱码解决方法
相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题。JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作为后台交互,容易出现中文乱码的问题。JSON和js一样,对于客户端的字符都是以UTF8的形式进行处理的,也就是说,使用JSON作为提交和接收的数据格式时字符都采用UTF8编码处理,当我们的页面编码和数据库编码不是采用UTF8的时候,就极容易出现中文乱码的问题。转载 2013-04-24 15:25:24 · 1436 阅读 · 0 评论 -
浅谈CSRF攻击方式、原理、防御
转自:http://www.cnblogs.com/hyddd/一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么? 你这可以这么理解CSRF攻击:攻击者盗用了你的身转载 2013-07-04 17:42:01 · 1582 阅读 · 1 评论 -
CURL 奇怪的403错误
自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果设置为不使用proxy则都能正常访问。难道google baidu就不让用proxy连接么?显然不可能,所以打开curl的信息输出(curl_s转载 2013-07-04 12:27:39 · 17932 阅读 · 0 评论 -
PHP使用curl伪造IP地址和header信息
curl虽然功能强大,但是只能伪造$_SERVER["HTTP_X_FORWARDED_FOR"],对于大多数IP地址检测程序来说,$_SERVER["REMOTE_ADDR"]很难被伪造:首先是client.php的代码view sourceprint?01$headers['CLIENT-IP'] = '2原创 2013-07-03 15:42:24 · 57392 阅读 · 1 评论