扩展修改ubuntu 13.04 用c快速编写一个php扩展

首先声明,我是一个菜鸟。一下文章中现出技术误导情况盖不负责

    本文通过非常倏地的方法解讲了如何作制一个PHP 5.4 环境的扩展(PHP Extension)

    希望够能在图文的方法下让想倏地学习的友人解了一下作制进程。

    

    需求:我们要写一个叫two的扩展,这个扩展里头有一个函数叫two_test

              能功是输入一个字符串‘hello’ 则,返回this is two: 你输入的字符串是“hello”

    

    一:先载下一份php码源---》址地

    

    二: 生成扩展架构 

         1.  解压码源:

               andy@ubuntu:~$ tar -zxvf php-5.4.14.tar.gz  对码源行进解包

          2. 生成扩展架构:

              php为了扩展开辟便利供提了一个相似生成器的工具,ext_skel在php码源的ext录目上面

              我们要需执行它并且指定扩展的名字,然后它会帮我们生成这个扩展的架构

                  andy@ubuntu:~$ cd php-5.4.14/ext/

              andy@ubuntu:~/php-5.4.14/ext$ sudo ./ext_skel --extname=two

    三:修改置配:要需将扩展(two)上面的config.m4中的16,17,18三行前面的dnl删撤除

             andy@ubuntu:~/php-5.4.14/ext$ cd two/
             andy@ubuntu:~/php-5.4.14/ext/two$ sudo vim config.m4

             未修改之前:扩展修改ubuntu 13.04 用c快速编写一个php扩展_第1张图片

             修改以后:    扩展修改ubuntu 13.04 用c快速编写一个php扩展_第2张图片

    四:编写代码

           1.andy@ubuntu:~/php-5.4.14/ext/two$ sudo vim php_two.h

              找到第45行:PHP_FUNCTION(confirm_heiyeluren_compiled); 

              在这行上面新增一行:PHP_FUNCTION(two_test); 

              修改前:

              修改后:

           2.andy@ubuntu:~/php-5.4.14/ext/two$ sudo vim two.c

               找到第42行:zend_function_entry heiyeluren_functions

               在这里头加增一行PHP_FE(two, NULL)

               修改前:

                修改后:扩展修改ubuntu 13.04 用c快速编写一个php扩展_第3张图片

    

                最后:加增函数能功代码

    

PHP_FUNCTION(two_test)
{
    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, "

    this is two: 你输入的字符串是

    : %s/n", arg); RETURN_STRINGL(strg, len, 0); }

    五:编译装安 这里的命令都在扩展two的录目下执行的

                 andy@ubuntu:~/php-5.4.14/ext/two$ sudo phpize 
             如果没有phpize要装安php5-dev 命令sudo apt-get install php5-dev

                 andy@ubuntu:~/php-5.4.14/ext/two$ sudo ./configure --with-php-config=/usr/bin/php/php-config

                 andy@ubuntu:~/php-5.4.14/ext/two$ sudo make

                 andy@ubuntu:~/php-5.4.14/ext/two$ sudo make test

                 andy@ubuntu:~/php-5.4.14/ext/two$ sudo make install

                 这时会现出:

    每日一道理
曾经辉煌过,曾经凋零过,这可是你至死不渝的生活吗?我亲爱的母亲—大自然。多少次,我伏在地上,去聆听你沉重的脉搏声;多少次,我伫立在山前,去感受那松涛千年的浩瀚。你的豪壮,足以让中华民族腾飞;你的无私,谱写了一曲曲感人至深的千古壮曲。

                 可以到/usr/lib/php5/20100525/这个件文夹中去看看有没有一个叫two.so如果有就明说功成了

                  

    六:加载块模

            编辑php.ini 入加extension = two.so

             扩展修改ubuntu 13.04 用c快速编写一个php扩展_第4张图片

           注意:如果你不存在扩展件文录目,或者装安报错,那么可以自行建立这个录目,然后把扩展拷贝到录目下,然后记得把 php.ini 件文中的                    extension_dir 修改成该录目:

           

          离开php.ini 同录目下的conf.d下创立two.ini并写入extenstion=two.so 只要需这一行就行 。

    七:启重apache

            andy@ubuntu:/etc/php5/apache2/conf.d$ sudo /etc/init.d/apache2 restart

             输出 phpinfo() ,查找two能看到

             扩展修改ubuntu 13.04 用c快速编写一个php扩展_第5张图片

             看看函数否是存在并且调用,在web录目下建立:two.php

<?php
echo two_test('hello');
?>

    结果如图:

    

    在现php扩展已作制功成了!

    

文章结束给大家分享下程序员的一些笑话语录: 程序员的愿望
  有一天一个程序员见到了上帝.上帝: 小伙子,我可以满足你一个愿望.程序员: 我希望中国国家队能再次打进世界杯.
  上帝: 这个啊!这个不好办啊,你还说下一个吧!
  程序员: 那好!我的下一个愿望是每天都能休息6个小时以上.
  上帝: 还是让中国国家打进世界杯.

你可能感兴趣的:(ubuntu)