php扩展开发入门

一,准备环境

   1.操作系统:fedora12

   2.下载php源码: http://cn2.php.net/get/php-5.4.10.tar.bz2/from/this/mirror

   3.解压获得php源码目录

   4.来到php源码目录:./configure

   5.make

   6.make install

   7.测试和php是否安装成功:php -v 看看


二。开发源码

     1.来到php源码目录cd ext来到ext目录中

     2.命令: ./ext_skel --extname=hello2013构建扩展开发环境,这样在ext目录下有一个hello2013目录了。

    3.vim config.m4

       找到这三行:

        dnl PHP_ARG_ENABLE(hello2013, whether to enable hello2013 support,
        dnl Make sure that the comment is aligned:
        dnl [  --enable-hello2013           Enable hello2013 support])

      删除前面的dnl,保存即可


    

     4.vim php_hello213.h

      找到:PHP_FUNCTION(confirm_hello2013_compiled);       /* For testing, remove later. */
      这里其实就是定义了个confirm_hello2013_compiled的函数。

     我们要在后面加上PHP_FUNCTION(hello2013);

    5.vim hello2013.c

    找到:const zend_function_entry hello2013_functions[] = {
        PHP_FE(confirm_hello2013_compiled,      NULL)           /* For testing, remove later. */
        
        PHP_FE_END      /* Must be the last line in hello2013_functions[] */
           };

        在PHP_FE(confirm_hello2013_compiled,      NULL)    这行下加上PHP_FE(hello2013, NULL)

        其实这就是定义函数参数的地方


         那么实现了 :

         PHP_FUNCTION(confirm_hello2013_compiled)
        {

           //中间代码省略
          }

          这个其实就是实现了confirm_hello2013_compiled的函数体

          那么我们可以在下面加上:

          

PHP_FUNCTION(hello2013)
{
    char *arg = NULL;
    int arg_len, len;
    char *strg;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
        return;
    }

    len = spprintf(&strg, 0, "hello 2013: %s", arg);
    RETURN_STRINGL(strg, len, 0);
}

  这样代码就写完了。

     6.在hello2013目录下: /usr/local/bin/phpize

    7.  ./configure

   8. make

   9. make install

   10。这个时候会提示一个生成so的目录

   拷贝这个so到/usr/lib/php/modules 下面(这个目录可能大家都不一样,大家可以通过phpinfo来找php。ini和存放ext目录,这里就是要把这个so放到这个ext目录下)

  11.配置php.ini加上这个扩展这个不用多说,你懂的。

    12.测试 直接php -r "echo hello2013('ddd');"看看会输出hello 2013 ddd呵呵 

   打完收工!



    


  

转载于:https://my.oschina.net/xming4321/blog/101450

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值