开发PHP扩展模块

来源:互联网 发布:手机网络苏菲广告美女 编辑:程序博客网 时间:2024/06/04 18:06

一、历史:在微博中,有很多对字符的操作,例如将用户的昵称替换为可点击的超链接,将话题解析。当然还有一些特出的做法。当我们将[TAG]xxx[TAG]输入到微博中,会自动变换为一个可以跳转到搜索页面的内容。在php中这是一个很简单的函数str_replcae()通过正则表达式就可以完成的工作。


将此部分用C语言编译到动态库中后,能一定程度提高渲染速度。一下主要介绍下如何通过C开发一个动态模块。


二、代码结构

需要编辑如下文件,将需要添加的FUNC添加到代码中。

config.m4

weibo_formatter.c

weibo_formatter.h

另外就是特别要用得到tag.c了。这个完全是一个可以调用的方法类,是由weibo_formatter.c中调用这个方法。


三、编译:

[root@vm12050051 chenhao_test]# phpize

[root@vm12050051 chenhao_test]# ./configure --enable-weibo

[root@vm12050051 chenhao_test]# make

[root@vm12050051 chenhao_test]# make install

注,建议每一个独立写的c文件,先单独通过cc编译。然后再做整体编译,否则make时是会报错的。




四、自动化测试,phpt

通过自带的run-test.php可以欲行phpt文件,并且和脚本中的断言做比对。

[root@vm12050051 chenhao_test]# php run-tests.php tests/tag_001.phpt 
ERROR: environment variable TEST_PHP_EXECUTABLE must be set to specify PHP executable!

执行程序时,如果遇到以上问题,那么是需要在环境变量中添加特定变量的。

[root@vm12050051 chenhao_test]# export TEST_PHP_EXECUTABLE=/usr/local/bin/php

添加后,再次运行即正常。


参考文章地址:

开发php扩展:http://www.walu.cc/phpbook/index.md

phpt自动化测试:http://doc.chinaunix.net/php/200903/239813.shtml

phpt自动化测试:http://qa.php.net/write-test.php



原创粉丝点击