当前位置:  编程技术>php

学习开发一个PHP扩展程序

    来源: 互联网  发布时间:2014-10-08

    本文导语:  开发一个php扩展,提供一个叫ccvita_string的函数,作用是返回一段字符。 对应的PHP代码:   代码示例: function ccvita_string($str){      $result = 'Link';      return $result; }   第一步,生成代码 PHP为了扩展开发的方便,提供了...

开发一个php扩展,提供一个叫ccvita_string的函数,作用是返回一段字符。

对应的PHP代码:
 

代码示例:
function ccvita_string($str){
     $result = 'Link';
     return $result;
}
 

第一步,生成代码
PHP为了扩展开发的方便,提供了一个类似代码生成器的工具ext_skel,具体可以参见说明。
首先,创建一个文件ccvita.skel,它的内容为
string ccvita_string(string str)
就是告诉ext_skel这个东西,要做的扩展里面有个函数叫ccvita_string。
然后,执行:
 

代码示例:
cd MooENV/src/php-5.3.8/ext/
./ext_skel --extname=ccvita --proto=ccvita.skel
cd ccvita/
 

这时候,ccvita这个扩展的代码框架就已经出来了。

第二步,修改配置
然后修改config.m4文件将10、11、12三行最前面的dnl删除掉,就是将
 

代码示例:
dnl PHP_ARG_WITH(ccvita, for ccvita support,
dnl Make sure that the comment is aligned:
dnl [  --with-ccvita             Include ccvita support])
 

修改为
 

代码示例:
PHP_ARG_WITH(ccvita, for ccvita support,
Make sure that the comment is aligned:
[  --with-ccvita             Include ccvita support])

第三步,实现功能
修改源码ccvita.c文件
找到将ccvita_string这个函数修改为
 

代码示例:
PHP_FUNCTION(ccvita_string)
{
    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, "Link", str);
    RETURN_STRINGL(result, str_len, 0);
}

第四步,编译扩展
保存后,开始编译
 

代码示例:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make

第五步,添加扩展
一切顺利的话,该扩展已经在modules/ccvita.so这个位置了。下面就是将这个扩展加入到PHP中去,让我们PHP程序可以调用到。
cp modules/ccvita.so /usr/local/php/ext/
vim /usr/local/php/etc/php.ini
 

代码示例:
#在php.ini文件最后增加这一行
extension=/usr/local/php/ext/ccvita.so
#重启PHP服务
service php-fpm restart
cp ccvita.php /data/www/wwwroot/default/
 

接下来就可以访问ccvita.php这个文件,测试扩展了。


    
 
 

您可能感兴趣的文章:

  • C#学习笔记之扩展方法
  • 编程新手问题:想学习他人写的程序,下了几个小程序源码包并解开(c/c++),请问第一步应该从哪个、哪几个文件开始分析、学习?
  • 学习JAVA程序设计,有没有《WINDOWS程序设计》这样的经典书籍?
  • 对于一个程序员来说,学习linux程序设计和unix编程到底有什么好处
  • 小弟刚来,只能给100分!请教一下各位:学习UNIX下的程序设计,用什么作为学习的“入门书”?推荐一个作为我的第一本书吧!
  • 求几个完整的Java程序,什么内容的程序都行,要包含工程文件和全部源文件,主要用于学习,发者就给分。
  • 初学linux下的c有苦于找不到什么程序实例学习
  • java程序员学习linux
  • 最进想学习LINUX程序设计,想了解一下在LINUX下的C++程序开发工具有哪些?有快速做界面的那种吗?
  • 什么设备的驱动程序便于学习理解?键盘、鼠标?
  • 谁知道哪里有usb驱动程序的详细介绍,我想学习。
  • 怎么学习Linux 设备驱动程序开发?
  • 小弟刚来,只能给100分!请教一下各位:学习LINUX下的程序设计,用什么作为学习的“入门书”?推荐一个作为我的第一本书吧!
  • 怎样学习Linux环境C程序设计
  • 请问高手们,哪里有EJB的学习资料或是源程序?
  • 在下想要学习LINUX下的网络程序设计,请帮忙推荐社区和教材,谢谢!
  • 怎样学习LINUX下的程序开发
  • 人民邮电的《sun认证java2程序员学习指南》怎么样?
  • Linux 下学习程序选哪本书好?
  • 在windows操作系统下是否可以学习linux程序设计
  • 请问 我想成为linux下的C++程序员 要如何去学习liunx
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我是学习web开发的,主要是java开发SSH开发框架和ajax等。我想知道有没有必要学习一下linux相关知识。
  • 学习java好 还是学习嵌入式开发好??
  • 学习linux驱动开发,买什么开发板好?
  • 想学习linux嵌入式开发,具体买什么开发板,请高人指点?
  • 我该学习哪一种开发java的开发工具
  • 我想学习Linux 嵌入式开发,请大家指教
  • 请教linux的学习,怎么学? 内核开发找什么样的工作?
  • 新手如何学习android开发
  • 请教大侠,怎么选开发学习板?
  • 工作电脑不能上网,学习linux驱动开发
  • 如何学习Linux嵌入式开发
  • 跪求linux下开发经验!及 学习GTK电子书籍!
  • 从问的问题看得出来,大家都是新手。大都问怎么配置,哪有入门资料等等问题,对于平时开发用到得问得很少。也体现出这里大家很少用java进行开发,大都刚开始学习。
  • 学习linux网络驱动开发有哪些比较好的书籍?
  • 请推荐几本学习UNIX开发的好书
  • 想学习linux环境下的IM server/client 开发,请有经验的朋友指点一下!
  • 我打算学习嵌入式Linux开发,想请各位指路?拜托了!一定给分!!
  • juqery的python实现:pyquery学习使用教程 iis7站长之家
  • JavaBeans开发用什么工具,学习bean应该怎样开始?
  • 想学习linux下的网络开发,请大哥推荐几本书吧
  • PHP介绍及学习网站推荐
  • 想深入学习Java应该学习哪些东西
  • 准备学习docker: docker version命令查看版本
  • 新手提问:学习c++同时也想学习unix和linux
  • HTML 学习总结及下一步学习教程推荐
  • 学习c后,学习pb,大家提点建议,谢谢哦
  • OpenStack相关学习资料搜集
  • 有最近开始学习Minix的吗?一起来学习吧
  • juqery的python实现:pyquery学习使用教程
  • 我想问问哪里有AIX下啊!~版本越新越好!~我想拿来学习学习
  • 想找共同学习Linux的新手,一起学习,共同成长


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3