php知识
looksun
这个作者很懒,什么都没留下…
展开
-
PHP中spl_autoload_register函数的用法
一个小例子: test.class.php class Test { function __construct() { echo '华夏之星:希望和PHP,Flex高手成为朋友。一起学习,共同奋斗!!!QQ:1019822077'; } } ?> load.php class LOAD { static function loadClass($转载 2014-04-30 17:10:59 · 550 阅读 · 0 评论 -
PHP register_shutdown_function
脚本时常死掉,而且并不总是那么好看. 我们可不想给用户显示一个致命错误,又或者一个空白页(在display_errors设为off的情况下) . PHP中有一个叫做 register_shutdown_function 的函数,可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会 被调用.所以,我们可以使用在转载 2014-04-30 17:53:02 · 699 阅读 · 0 评论 -
记录PHP、MySQL在高并发场景下产生的一次事故
事故描述 在一次项目中,上线了一新功能之后,陆陆续续的有客服向我们反应,有用户的个别道具数量高达42亿,但是当时一直没有到证据表示这是,确实存在,并且直觉告诉我们,这是不可能的,就一直没有在意,直到后来真的发现了一个用户确实是42亿,当时我们整个公司都震惊了,如果有大量用户是这样的情况,公司要亏损几十万,我们的老大告诉我们,肯定是什么地方数据溢出的,最后我们一帮人,疯了似的查代码,发现……转载 2015-02-28 08:37:46 · 2939 阅读 · 2 评论 -
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
我们知道数据库处理sql是一条条处理的,假设购买商品的流程是这样的: sql1:查询商品库存 if(库存数量 > 0){ //生成订单... sql2:库存-1} 当没有并发时,上面的流程看起来是如此完美,假设同时两个人下单,而库存只有1个了,在sql1阶段两个人查询到的库存都是>0的,于是最终都执行了sql2,库存最后变为-1,超售了,要么补库存,要么等用户投诉吧。转载 2015-06-03 18:33:46 · 1031 阅读 · 0 评论 -
PHP内核探索:新垃圾回收机制说明
在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空间可以被释放,否则就不释放,这是一种非常简单的GC实现。然而在这种简单的GC实现方案中,出现了意想不到的变量内存泄漏情况(Bug:http://bugs.php.net/bug转载 2015-09-20 18:07:06 · 487 阅读 · 0 评论 -
PHP empty isset is_null区别比较
empty 如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var、未定义; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 isset 如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是fa转载 2015-11-12 10:41:53 · 316 阅读 · 0 评论 -
PHP伪造referer地址的三种方法
CURL方式: $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, "http://www.yyyy.com"); curl_setopt ($ch, CURLOPT_REFERER, "http://www.xxxx.com/"); curl_exec ($ch); curl_close ($ch); SOCKET方式转载 2015-11-12 11:28:09 · 6672 阅读 · 1 评论