
PHP
三石先生XL
这个作者很懒,什么都没留下…
展开
-
yii之-日志使用
在配置文件(config/main.php)类似如下配置日志 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( '转载 2013-12-19 11:32:30 · 2990 阅读 · 0 评论 -
两道面试题
#1.多进程写文件function write_file($filename, $content){ $lock = $filename . '.lck'; $write_length = 0; while(true) { if( file_exists($lock) ) { usleep(100); } else转载 2013-01-11 16:54:11 · 635 阅读 · 0 评论 -
N个元素中取M个的全组合
$arr = array('1', '2', '3', '4', '5');for($i = 1; $i <= count($arr); $i++){ loop($arr, '', $i);}function loop($arr, $prefix, $n){ if (count($arr) < $n || $n == 0) { return; } elseif($n == 1)原创 2013-01-23 23:30:55 · 846 阅读 · 0 评论 -
文件图片上传控件
swfupload多文件上传 预览 格式控制原创 2013-01-09 13:17:28 · 470 阅读 · 0 评论 -
PHP设置错误报告
error_reporting设定错误讯息回报的等级。语法: int error_reporting(int [level]);传回值: 整数函式种类: PHP 系统功能转载 2013-01-23 09:33:33 · 1113 阅读 · 0 评论 -
zendframwork2
Zend Framework 2.0 (ZF2)官方资源Zend Framework 2(ZF2)官方网站Zend Framework 2(ZF2)用户手册Zend Framework 2(ZF2)API文档Zend Framework 2(ZF2)模块汇总Zend Framework 2(ZF2)Git代码库Zend Framework 2(ZF2)官方模块,ZF1的Service,Oa转载 2013-01-08 13:42:33 · 1240 阅读 · 1 评论 -
PHP5.3以上use关键词
use关键字是php5.3以上版本引入的它的作用是给一个外部引用起别名。这是命名空间的一个重要特性,它同基于unix的文件系统的为文件或目录创建连接标志相类似。PHP命名空间支持三种别名方式(或者说引用):1:为一个类取别名2:为一个接口取别名3:为一个命名空间取别名这三种方式都是用 use 关键字来完成。下面是三种别名的分别举例:转载 2013-01-08 13:39:22 · 4960 阅读 · 1 评论 -
zendframework
APIhttps://packages.zendframework.com/docs/latest/manual/en/index.html原创 2012-12-18 00:01:34 · 559 阅读 · 0 评论 -
PHP round()函数进位问题
今天写程序时发现PHP四舍五入函数round没有把0.5进位,查了下资料发现如下解释:在对正好一半的分数进行舍入时 round() 在偶数次舍去,在奇数次进位。如果你想迫使它对 .5(或 .05)总向一个方向舍入,加上或减去一个很小的因子。对一半值舍去对另一半值进一的背后原因是避免传统的银行问题,即如果总是舍去则银行从顾客那里多拿了钱,如果总是进一则银行最终会损失了钱。对此平均舍入则在统计上达原创 2012-11-23 16:26:31 · 2636 阅读 · 0 评论 -
session锁问题
碰到个问题,在使用了session时(如用户登录),如果当前请求时间过长,再执行其他请求都不会有响应,查找了网上资料发现,这个是session锁的问题目前我们的程序基本流程如下:(1)加载Session模块,执行session_start(),此时程序就开始持有锁。(2)访问Session中的数据,例如member信息。(3)执行正常业务逻辑,访问数据库,渲染页面等。(4)原创 2012-11-16 09:32:41 · 3879 阅读 · 0 评论 -
session_write_close() PHP在访问Session数据时存在互斥情况,导致Ajax请求响应缓慢
概要:PHP在访问Session数据时存在互斥情况,导致Ajax请求响应缓慢。一,问题分析:最近在统计网站请求响应时间时,发现有很多请求时间超过0.5秒,login/info最为明显。经过分析,login/info本身操作并不复杂,读取Session中的数据,查询一次数据库,然后返回。进一步跟踪发现,PHP在访问Session数据时,首先需要获取到竞争的锁,否则就会Slee转载 2012-11-16 09:18:59 · 9974 阅读 · 0 评论 -
PHP浮点型比较精度问题
今天碰到个问题,浮点型比较单纯用> = $a = '500.00';$b = '500'var_dump(float($a) > float($b));这个结果居然是(true);不论php版本,用> = 最后找到了解决方法bccomp(floatval($a), floatval($b), 2);这个函数 是专门用来对比高精度数字的第一个参数大于第二个返回原创 2012-11-12 11:20:57 · 4670 阅读 · 0 评论 -
高并发库存控制
如今,在电商行业,秒杀活动已经是家常便饭,面对这种高并发压力之下,又有什么办法来缓解这种压力呢?秒杀就像过年回家的时候买火车票,需要遵守以下几个原则:1.公平性,机会均等,遵守FIFO原则。2.快速处理能力,增加售票窗口,增加售票渠道。3.稳定性,适当的入口数量,保证售票厅内人满为患。那么,在现实开发当中,怎么去实现呢?以下图为例:转载 2013-01-13 21:26:51 · 1666 阅读 · 0 评论 -
BAIDU面试题
1.如何取一个无需数组的中位数(时间复杂度)2.如果让你设计类似缓存的过期功能,你会怎么实现3.有一个商店,每天顾客很多,老板想搞个抽奖活动,但是老板记性不好,每次只能记住一个人,也不能把客户名单记录下来,要你设计一个程序帮助老板实现这个抽奖活动,要求对每个客户都绝对公平(权重相同)蓄水池抽样(Reservoir Sampling)http://blog.youkuaiyun.com/zd原创 2013-01-28 08:31:35 · 682 阅读 · 0 评论 -
hessianPHP详解
使用时候自定义的类//引入hessian包include_once VENDOR_PATH.'/HessianPHP/src/HessianClient.php';class HessianPHPAPI{ private $hClient; private $param; private $option; /** +-----------------------转载 2013-07-26 17:21:00 · 2577 阅读 · 0 评论 -
PHP常用算法
// 冒泡法function bubbleSort($array){ !is_array($array) ? '非数组' : ''; $len = count($array); for ($i = 0; $i < $len; $i++) { for ($j = $len -1 ; $j > $i; $j--) { if ($ar转载 2013-07-26 17:08:34 · 555 阅读 · 0 评论 -
指针、句柄、引用的区别(2)
那是什么是句柄?他和指针有什么异同?下面是我在网上找的专业文章,介绍指针和句柄的异同。这也是我经常分不清楚的概念。我一直认为当某个句柄被申请时,就是分配了某个对象在内存中的某种形式,用户拿着这个句柄可以访问和操作这块内存,操作方法取决于句柄类型。感觉很高深,所以也就没有去深究。句柄和指针的区别当把硬盘上的资源调入内存以后,将有一个句柄指向它,但是句柄只能指向一个资源。而转载 2013-06-02 15:53:06 · 4556 阅读 · 0 评论 -
指针、句柄、引用的区别(1)
(1)指针是对象在内存中的地址;(2)引用是对象的别名,其实质就是功能受限但是安全性更高的指针;(3)句柄是指针的指针,句柄实际上是一个数据,是一个Long (整长型)的数据。句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样。Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内转载 2013-06-02 15:52:08 · 1357 阅读 · 0 评论 -
PHP-$_REQUEST
我平时总是喜欢用$_REQUEST这个数组,不是因为别的,简单,而且想用GET时候就用GET直接测试即可。还可以把URL打出来,很是方便。从而很少用$_GET和$_POST超全局变量。不过,从今以后我会尽量不再使用$_REQUEST这个数组,因为以前对这个数组有些一知半解,总以为用起来简单,并且随心所欲,和$_GET与$_POST一样,而且由系统为我判断,多好。下面我就来简单的介绍一下为何转载 2013-05-27 12:04:12 · 573 阅读 · 0 评论 -
HESSIONPHP2.2 double类型bug解决
//HESSIONPHP double类型转码错误//最终解决方法为//Hessian2Parser.php下185行改为如下function double4($code, $num){return 0.001 * $this->parseInt($code, $num);/*$b = $this->read(4);$num = (ord($b[0]) << 24) + (ord(原创 2013-04-07 11:10:33 · 836 阅读 · 0 评论 -
HessionPHP与JAVA通信
HessianPHP_v2.0.3.zip, 在php作客户端,java作服务器端时,使用注意事项:1.需要在php.ini中配置CURL模块:extension=php_curl.dll2.php传中文给java, 和java返回中文给php,都有中文乱码问题:1)php和java文件本身都采用UTF-8编码2)在php.ini中开启mbstring模块:exte转载 2013-04-03 14:23:46 · 1900 阅读 · 0 评论 -
一个老程序员PHP程序员说的话
原帖http://www.zeroplace.cn/article.asp?id=697看了这篇帖,很是感慨。。。贴下大家分享我,一个老程序员,也是一个学生,把玩过甚多语言,大多不精。我既非名牌学校,也不是高学历,仅代表一部分比较蛋疼的人。接触PHP也是很早了,从04年的OFSTAR开始的,到现在六年了,期间也接触过不少的语言。从脚本JS到底层的C语言。坦诚的说,我不是转载 2013-01-15 07:56:04 · 970 阅读 · 2 评论 -
memcache高并发
在面试某搜索公司时,面试官问了我memcache并发的处理问题,自己平常没有考虑这么多,只是简单的set和get,差距还是很大呐下面是收集到的一些memcache的并发控制的文章。http://hi.baidu.com/chen_cong_520/item/1f5a230c93fd513cf2eafc29memcached的原子性操作memcached是转载 2013-01-13 20:34:01 · 8902 阅读 · 0 评论 -
Nginx与Redis解决高并发问题
原文链接:http://bbs.phpchina.com/forum.php?mod=viewthread&tid=229629第一版产品采用的是Jquery,Nginx,PHP(CI框架),Memcache,Mysql这种常用的架构。作为一名PHP工程师对于这种架构已经非常的熟悉了,目前站点并发并不是很高,线上环境使用的是阿里云主机,1.5G的内存,PHP并发能支持400~500左右转载 2013-01-13 20:40:26 · 51693 阅读 · 0 评论 -
PHP判断最后一个元素及获取key
判断最后一个元素if(current($a) == end($a)){ echo 'aaa'; }获取最后一个key$a = array('a'=>1,'b'=>2);end($a)echo key($a);原创 2012-09-25 08:25:57 · 5054 阅读 · 0 评论 -
continue switch外的循环
注意和其它语言不同,continue 语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一个轮回,用 continue 2。switch($value) { case 'group': continue 2; break; case 'common': break; case 'extra原创 2012-09-05 14:57:57 · 632 阅读 · 0 评论 -
截取固定格式的字符串explode与substr-strpos
截取固定格式的字符串今天将喵魂弄来支持百度贴吧,遇到了截取自己生成的一个固定格式的字符串的问题,比如“212_22222”。要将前面那个212给弄出来。第一想法便是正则,直接去群里求正则,但是挖路哥提醒可以不用正则,用下面那个substr($str, 0, strpos($str, '_'));同一时间我也想到了一个方法$re = explode(',', ""转载 2012-09-04 17:02:42 · 1317 阅读 · 0 评论 -
Php底层深度探索(2)---Apache运行机制剖析
二、Apache运行机制剖析l B/S交互过程浏览器和服务器一次交互的过程如图: 1、 浏览器(Browser)向服务器(Web Server)发出HTTP请求(Request)。2、 服务器(Web Server)分析浏览器的请求,输出响应数据(Response)。3、 浏览器(Browser)收到响应数据后进行解析,最后显示在浏转载 2012-07-15 17:00:46 · 517 阅读 · 0 评论 -
php底层深度探索(1)---序言
在开始这个专题之前,先说一点题外话。大多数人学习编程语言的时候,首先关注的是这种语言的语法及其常用函数。反正,我学习C,Java,Php等语言就是按照这样的方式开始的。一般情况下,这个阶段需要一个月左右的时间就会完全掌握,并能基本熟练地使用。对于已有经验的同学,可能时间更短。其实各种语言的语法和常用函数都差别不大,有很多相通的地方。如果您在学习一种编程语言的时候,拿一些真正的项目任务作为实践,效果转载 2012-07-15 16:59:21 · 359 阅读 · 0 评论 -
php 大数据量及海量数据处理算法总结
下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。 1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点:转载 2012-07-11 09:52:06 · 1167 阅读 · 0 评论 -
PHP对象的浅复制与深复制
最近在看原型模式时注意到这个问题~~PHP中对象 '=' 与‘clone’的区别//聚合类class ObjA { public $num = 0; public $objB;//包含的对象 function __construct() { $this->objB = new ObjB(); } //只有实现了下面方法聚合类 才能实现深复制 /*function __cl原创 2012-06-25 09:55:49 · 3235 阅读 · 0 评论 -
类型转换&&类型强制转换
获取数据类型 :如果想查看某个表达式的值和类型,用 var_dump()。 如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype()。要查看某个类型,不要用 gettype(),而用 is_type() 函数。■字符串转换为数值当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值。如果包括“.”,“e”或“E”其中任何一个字符转载 2012-06-21 16:27:08 · 654 阅读 · 0 评论 -
分类树方法
/** +---------------------------------------------------------- * 分类树 +---------------------------------------------------------- */function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_转载 2012-06-21 11:02:08 · 819 阅读 · 0 评论 -
php中\r \r\n \t的区别,是什么意思
\n 软回车: 在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 \r 的效果。 在Linux、unix 中只表示换行,但不会回到下一行的开始位置。\r 软空格: 在Linux、unix 中表示返回到当行的最开始位置。 在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 \n转载 2012-06-18 09:32:00 · 1319 阅读 · 0 评论 -
PHP程序员经常犯的10种错误
我们在用php进行开发的时候,往往不经意的都会犯这样那样的错误,而且有些错误还是经常会犯的,下面列出了PHP程序员经常犯的10种错误,大多数和安全相关。看看你犯了几种: 1.不转意html entities 一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转意。 echo $_GET['usename'] ; 这个例子有可能输出: /*更改转载 2012-05-22 23:23:44 · 1353 阅读 · 0 评论 -
php之关键字
Private, Public 和 Protected 在PHP4中,你可以在对象的外面操作它任意的方法和变量--因为方法和变量是公用的。在PHP5引用了3种模式来控制对变量、方法的控制权限:Public(公用的)、Protected(受保护)和Private(私有)Public:方法和变量可以在任意的时候被访问到,子类可以重定义覆盖Private:只能在类的内部被访问,子类也不能访问,子转载 2012-05-11 09:19:29 · 504 阅读 · 0 评论 -
php面向对象程序设计(OOP)的61条准则
http://wenku.baidu.com/view/4b899a126edb6f1aff001fbe.html转载 2012-05-22 23:26:09 · 635 阅读 · 0 评论 -
网站架构探索(2)-CDN基本常识
在介绍网站架构之前,我们先介绍一些网站架构中最基础和常见的概念,以便更好的理解后面的有关负载均衡和分布式存储等技术。第一个,首先讲讲CDN。 1、CDN是什么 CDN(Content Delivery Network),就是内容发布网或者内容分发网,它的主要目的:通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得转载 2012-07-15 16:59:42 · 564 阅读 · 0 评论 -
php底层深度探索(3) ---Apache启动阶段分析
这一篇多写一点内容,主要是今天终于有时间了。最近工作一直比较忙,公司里一大摊子事情需要处理,哥们首先得卖身混饭吃,其次才能在闲得蛋疼的时候写一点。闲话少叙,书接上回: l Apache的生命周期这一节的内容将会阐述php模块的载入过程,请参考Apache的生命周期示意图(prefork模式下)。 Apache的运行分为启动阶段转载 2012-07-15 17:02:05 · 396 阅读 · 0 评论 -
设置include和require的目录get_include_path与set_include_path
首先 我们来看这个全局变量:__FILE__ 它表示文件的完整路径(当然包括文件名在内) 也就是说它根据你文件所在的目录不同,有着不同的值;当然,当它用在包行文件中的时候,它的值是包含的路径; 然后: 我们看这个函数: string dirname ( string path ) 它是PHP内置函数,它的作用是什么呢,就是返回除了本文件名以外的所在目录,给你举个例子 假如你的转载 2012-08-21 13:46:38 · 2387 阅读 · 0 评论