让我们一起爱米兰
站内搜搜:
移动设备
请扫描二维码
或访问
m.milan100.com
您所在的位置 -> 米兰百分百 -> PHP -> linux下编译自己开发的php扩展

linux下编译自己开发的php扩展

点击数:627 发表时间:2016-07-14 16:36:42 作者: 来源链接:
分享到:
分享到微信

php扩展顾名思义,是用于增强php的功能,可以把现实功能的php代码放到php的底层用C语言实现,以后待博主自己调试完成将webdav编译到php的扩展成为一个.so文件的时候再发文章详细的说明。php扩展不必要自己完全的写代码,其实php官方本身就自带了一个小工具,叫做ext_skel。

具体实现的方法

切目录到你的php的源码的目录,找到ext,切到ext下,你就会发现ext_skel这个文件,下面你就需要新建一个文件,随便举个例子lazypeople.skel (linux command $ touch lazypeople.skel),然后对文件进行编辑,文件的内容写为:string lazypeople(string str),然后使用命令自动生成扩展的那么的文件,只需要./ext_skel –extname=lazypeople –proto=lazypeople.skel 这个命令也很好懂。

这时你就会发现自动生成了很多的函数

下面继续的工作就是编辑生成的文件以满足我们的功能

1.step1

编辑config.m4,去掉10 11 12行的注释,dnl定义的即是注释。

2.step2

编辑lazypeople.c,功能是按照输入的字符串生成a标签,找到对应的代码修改为:

PHP_FUNCTION(lazypeople)
{
    char *str = NULL;
    int argc = ZEND_NUM_ARGS();
    int str_len;
    char *result;

    if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == FAILURE) 
        return;

    str_len = spprintf(&result, 0, "<a href=\"%.78s\">Link</a>", str);
    RETURN_STRINGL(result, str_len, 0); 
}

3.step3 开始编译
在当前目录下输入linux命令

/usr/local/php/bin/phpize  
./configure --with-php-config=/usr/local/php/bin/php-config
#(如果你的php安装路径不是这个请对应修改!)
make
make test
make install

4.step4

到这里扩展的so文件已经在 modules文件夹下了,而且已经安装到你的php的扩展文件下面,现在只需要修稿你的php.ini设置了,在扩展文件那加上一句extension=/usr/local/php/ext/lazypeople.so ,然后重启你的php即可。

此时你就可以在全局的php脚本中使用lazypeople($str)函数了,不需要require任何的定义文件。是不是很神奇,就相当于给php新增可不少的内置函数以满足你的要求。

3
很 好
3
一 般
3
差 劲
热门新闻
相关文章
上一篇: php 生成短网址原理及代码
下一篇: php发送邮件类
评论区
匿名

返回首页 | 收藏本页 | 回到顶部
Copyright 2010. 米兰百分百 Powered By Bridge.
京ICP备15050557号