php
文章平均质量分 58
blakeFez
路在脚下
展开
-
PHP session机制小析
经常遇到一些用PHP写的需要登录的网站,如果你想退出,一个很方便的做法就是如下图所示: 在浏览器那里,按下F12,找的Cookies那一项,然后把名为PHPSESSID的Cookie删掉,然后刷新一下页面,你就会发现,自己已经退出了。这是什么原因呢?因为我们知道,PHP网站判断是否登录一般是用session来判断的,那为什么删除了Cookie之后就退出了呢?那么,我们就要知道,删除了这个Coo原创 2015-06-28 15:09:32 · 836 阅读 · 0 评论 -
php源码阅读----php5.3.27 mysqli扩展bug及修复
最近在做一个功能,需要设置mysql查询超时。于是就使用mysqli的options(MYSQL_OPT_READ_TIMEOUT,5)或者options(11,5),但结果却出人意料。首先,我写了如下的测试代码:<?php $mysqli = mysqli_init(); $r = $mysqli->options(11, 1); var_dump($r); $my原创 2017-03-08 20:34:11 · 1560 阅读 · 0 评论 -
php深入学习之变量的引用计数
php变量的引用计数是什么呢?首先看一下php变量的底层结构:typedef struct _zval_struct zval;struct _zval_struct { zvalue_value value; //存放value zend_uint refcount__gc; //引用计数 zend_uchar type; //判断类型 z原创 2015-08-07 14:10:30 · 800 阅读 · 0 评论 -
rtrim函数的一个坑
简述一下今天遇到的问题: 在我的代码里面有如下代码段:<?php header("Content-type:text/html;charset=utf8"); echo rtrim("威、","、");本来的预想是输出“威”。然而事与愿违,输出了几个乱码。这是为什么呢?容我细细道来。 首先要知道rtrim函数的功能,它的第二个参数是一个string,其中的每个char都会被拿出来原创 2016-07-20 16:00:47 · 7044 阅读 · 2 评论 -
用PHP实现n的阶乘--高精度算法
今天在IT届,最火的新闻莫过于李世石输给了alphago。看到新闻说,“围棋有361个落子点,所以下棋有10^171种可能。”然后我就突然想361的阶乘是多少呢?即361*360*359*358*......*5*4*3*2*1 = ?于是自己用php实现了一下算法。代码如下:<?php $result = "1"; for($i = 1; $i <= 361; $i++){原创 2016-03-09 20:27:11 · 8626 阅读 · 0 评论 -
LNMP环境搭建
LNMP其实就是Linux+Nginx+Mysql+Php。Linux安装我在上一篇已经详细介绍了。现在主要说nginx+mysql+php的安装一、nginx安装 nginx安装前,需要安装几个依赖库 openssl库、zlib库和pcre库①、openssl库安装cd ~/download && wget http://www.openssl.org/source/openssl-fips-原创 2015-07-23 10:23:29 · 1989 阅读 · 0 评论 -
PHP session文件锁住及解决
最近项目遇到一个神奇的问题,当一个页面卡主的时候,用同一个浏览器打开的我们网站的其他页面,也会跟着卡主。但如果我把浏览器关掉,然后再打开,页面就不会卡了,或者换一个浏览器打开,页面也不会卡。我第一时间就觉得,应该是session的问题。 于是我用strace 跟踪了一下那个php进程,发现 果然是session文件死锁了。 于是网上找了下,大多是使用session_write_close(原创 2016-03-17 22:22:50 · 2140 阅读 · 0 评论 -
PHP扩展代码结构详解
PHP扩展代码结构详解 : 这个是继:使用ext_skel和phpize构建php5扩展 内容 (拆分出来)Zend_API:深入_PHP_内核:http://cn2.php.net/manual/zh/internals2.ze1.php我们使用ext_skel创建扩展 hello_module,该模块包含一个方法:hello_world。使用ext_skel转载 2015-11-16 11:01:53 · 1228 阅读 · 0 评论 -
php-redis中文文档
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支持redis 2.0.4)Redis::__construct构造函数$redis = new Redis();connect转载 2015-09-24 17:35:47 · 783 阅读 · 0 评论 -
【php】foreach中使用引用引起的问题
废话不多说,直接看如下代码: $arr = array('a','b','c','d'); foreach($arr as &$v){} foreach($arr as $v){ var_dump($v); }运行后,结果如下:string 'a' (length=1)string 'b' (length=1)string 'c' (len原创 2015-11-11 19:43:34 · 808 阅读 · 0 评论 -
PHP扩展编写入门
本文通过编写一个简单的PHP扩展hello_world来说明PHP扩展是如何编写的。这个扩展没有任何的实用性,纯粹用来学习扩展如何编写的,如果真的想自己写出实用性的PHP扩展,还需要熟悉ZEND API,而且对C语言也有较高的要求。好,进入正题。1、进入PHP源码的ext目录下,然后执行:./ext_skel --extname=hello_world2、进入hello_world目录,编辑conf原创 2015-09-15 19:03:45 · 954 阅读 · 0 评论 -
Zend API:深入 PHP 内核
Zend API:深入 PHP 内核 本文转载自(http://www.woxihuan.com/17707858/1317300211103943.shtml)网上关于 PHP 的资料多如牛毛,关于其核心 Zend Engine 的却少之又少。PHP 中文手册出现已 N 年,但 Zend API 的翻译却仍然不见动静,小弟自觉对 Zend Engine 略有小窥,并且翻译也转载 2015-09-25 11:04:23 · 999 阅读 · 0 评论 -
一个超级简单的php框架
最近自己写了一个php框架,github地址如下: blakeFez-PHP-Framework 这个框架功能比较少,不适合商用,但如果只想做一个个人的小网站,这个框架绝对是够用了。 该框架的目录结构如下:/command //该目录用于存放cli模式下的command类/controller //该目录用于存放cgi模式下的controller类/frame //该目录用于存放框原创 2015-09-08 21:57:34 · 1047 阅读 · 0 评论 -
Yii源码之import小析
用过Yii框架的人,一般都知道在Yii的配置里面,有个import参数。这个参数一般可以这样配置:Yii::setPathOfAlias('docroot', '/data/php/classes');$config = array( .... 'import' => array( 'docroot.services.*', 'docroot.mod原创 2015-07-06 23:10:37 · 856 阅读 · 0 评论 -
nginx+php-fpm模式php内存泄漏探究
之前遇到过一次服务器内存告警,查看后发现有个php-fpm进程占用了2G的内存。但我明明在php.ini文件里面,有配置 memory_limit = 256M,那为什么会有占用2G内存的php-fpm进程呢?原创 2015-06-30 08:51:28 · 7458 阅读 · 0 评论 -
如何理解“php是用c写的”
很多人知道,php是用c写的。那么到底c写了php的什么呢?要理解这个,我们先从一个php脚本如何执行说起。假设有个php文件helloWorld.php:<?php$str = "hello world!";echo $str;然后我们在命令行执行:php helloWorld.php。之后会发生什么呢? ①、机器会打开一个叫php的程序,这个程序是用c写的。 ②、php程序会去读取hel原创 2015-07-08 12:31:16 · 2497 阅读 · 0 评论 -
用php实现几种常见的排序算法
一、冒泡排序 冒泡排序理解起来是最简单,但是时间复杂度(O(n^2))也是最大的之一,实现代码如下:function bubbleSort($arr) { $len = count($arr); for ($i = 0; $i < $len; $i++) { // 遍历i后面的元素,只要该元素小于当前元素,就把较小的往前冒泡 for ($j = $i原创 2017-03-14 22:41:26 · 4469 阅读 · 0 评论