BeWithYou

胡搞的技术博客

PHP

实现一个TCP服务端PHP扩展


实现一个TCP服务端PHP扩展 博客断更2个月了,一是要离开帝都了,最近主要做交接工作,二是懒。 这段时间琢磨写个PHP扩展玩玩。于是想到写一个简单的TCP服务端,能在PHP中方便的实现TCP长连接处理和响应。当然,只是个玩具,以跑通的为目的。 本文记录一下实现过程中的重点。并附上代码的链接。 在PHP中的体现 设计扩展,最好先把它在PHP……
PHP

实现GBK和UTF8的按字节截取


今天遇到需要按字节截取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

PHP内核中zval的拷贝


最近在学习PHP扩展开发,发现参考资料里有一些问题。案例代码无法按照预期的运行,经过一系列debug和查阅资料,发现问题在于zval的传递。 发现问题 参考《PHP核心技术与最佳扩展》,按照书中的代码,编写的双向链表扩展。使用如下测试代码测试时,却不能准确地遍历链表。 $list = list_create(); for($i=0;$i<10;$i++){ list_add_hea……
PHP

PHP中的协程(二)


上篇文章里提到PHP中协程的引入,可以使PHP编程有新的玩法,不在遵循原本顺序执行的思路,从而应对大访问量和并发操作。 有赞的zan framework就是基于PHP协程的,提供最简单的方式开发面向C10K+的高并发HTTP服务或SOA服务。我并没有深入的学习这个框架,这里只打算把关于协程的部分抽出来学习一下。 zan框架高并发设计思路 粗看之下(不一定对哦),框……
PHP

PHP中的协程(一)


之前学习Lua的时候第一次接触到了协程(coroutine)的概念。而PHP5.5版本中也加入了协程的概念,从此PHP编程又有了新的思路和玩法。这里学习一下PHP中协程的相关概念的使用方法。 分成上下两篇文章吧,这篇主要讲一下基础概念。 协程是什么? 在以前的Lua学习笔记三中可以看到,协程与多线程的比较,有自己的堆栈、……
PHP
回到顶部