实现一个TCP服务端PHP扩展 admin 2017年06月30日 分类:PHP Views(1944) 条评论 实现一个TCP服务端PHP扩展 博客断更2个月了,一是要离开帝都了,最近主要做交接工作,二是懒。 这段时间琢磨写个PHP扩展玩玩。于是想到写一个简单的TCP服务端,能在PHP中方便的实现TCP长连接处理和响应。当然,只是个玩具,以跑通的为目的。 本文记录一下实现过程中的重点。并附上代码的链接。 在PHP中的体现 设计扩展,最好先把它在PHP…… 阅读全文>>
实现GBK和UTF8的按字节截取 admin 2017年04月20日 分类:PHP Views(1773) 条评论 今天遇到需要按字节截取GBK和UTF8字符串的需求。记录一下代码片段。 function substrMB($str, $minLen, $maxLen, $charset = "utf8", $append = false, $default = "") { $length = strlen($str); if ($length <= $minLen) { $str = $default; } elseif ($length <= $maxLen) { //DO NOTHING } else { $strLast = array(); $i = …… 阅读全文>>
PHP内核中zval的拷贝 admin 2017年04月19日 分类:PHP Views(1901) 条评论 最近在学习PHP扩展开发,发现参考资料里有一些问题。案例代码无法按照预期的运行,经过一系列debug和查阅资料,发现问题在于zval的传递。 发现问题 参考《PHP核心技术与最佳扩展》,按照书中的代码,编写的双向链表扩展。使用如下测试代码测试时,却不能准确地遍历链表。 $list = list_create(); for($i=0;$i<10;$i++){ list_add_hea…… 阅读全文>>
PHP中的协程(二) admin 2017年03月02日 分类:PHP Views(2646) 条评论 上篇文章里提到PHP中协程的引入,可以使PHP编程有新的玩法,不在遵循原本顺序执行的思路,从而应对大访问量和并发操作。 有赞的zan framework就是基于PHP协程的,提供最简单的方式开发面向C10K+的高并发HTTP服务或SOA服务。我并没有深入的学习这个框架,这里只打算把关于协程的部分抽出来学习一下。 zan框架高并发设计思路 粗看之下(不一定对哦),框…… 阅读全文>>
PHP中的协程(一) admin 2017年02月28日 分类:PHP Views(1962) 条评论 之前学习Lua的时候第一次接触到了协程(coroutine)的概念。而PHP5.5版本中也加入了协程的概念,从此PHP编程又有了新的思路和玩法。这里学习一下PHP中协程的相关概念的使用方法。 分成上下两篇文章吧,这篇主要讲一下基础概念。 协程是什么? 在以前的Lua学习笔记三中可以看到,协程与多线程的比较,有自己的堆栈、…… 阅读全文>>