程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php如何調用c接口無錯版

php如何調用c接口無錯版

編輯:關於PHP編程

     1.首先是要安裝好PHP

     

    2.進入PHP的下載解壓目錄下的ext目錄

    #cd /root/php-5.3.6/ext

    #./ext_skel --extname=hmc

     

    說明:

    ./ext_skel --extname=module_name
    module_name是你自己可以選擇的擴展模塊的名字,例如我選擇的hmc。執行工具後會自動在ext目錄下建立你選擇的module_name名字的目錄,裡面已經生成了相關的代碼,這些代碼中只需要調整config.m4文件中的三行注釋就可以正常的編譯帶這個自定義擴展模塊的php了。

     

    3.修改config.m4

    可以將生成的module目錄復制到任意希望放置的地方

    進入hmc目錄

    vi config.m4

    使用文本編輯器打開config.m4文件

    根據你自己的選擇將

    dnl PHP_ARG_WITH(hmc, for hmc support,

    dnl Make sure that the comment is aligned:

    dnl [ --with-hmc Include hmc support])

    修改成

    PHP_ARG_WITH(hmc for hmc support,

    Make sure that the comment is aligned:

    [ --with-hmc Include hmc support])

    或者將

    dnl PHP_ARG_ENABLE(hmc, whether to enable hmc support,

    dnl Make sure that the comment is aligned:

    dnl [ --enable-hmc Enable hmc support])

    修改成

    PHP_ARG_ENABLE(hmc, whether to enable hmc support,

    Make sure that the comment is aligned:

    [ --enable-hmc Enable hmc support])



    一般我會選擇後者,然後保存退出。

     

    4.修改.c和.h文件代碼

    Vi hmc.c

    將文件其中的下列代碼進行修改

    /* Every user visible function must have an entry in hmc_functions[].

    */

    const zend_function_entry hmc_functions[] = {

    PHP_FE(say_hello, NULL) /* 添加著一行代碼 */

    PHP_FE(confirm_hmc_compiled, NULL) /* For testing, remove later. */

    {NULL, NULL, NULL} /* Must be the last line in hmc_functions[] */

    };



    在文件的最後添加下列代碼

    PHP_FUNCTION(say_hello)

    {

    zend_printf("hello worldn");

    }

    保存文件退出



    vi php_hmc.h

    在文件中PHP_FUNCTION(confirm_hmc_compiled);一行前面添加下面的代碼

    PHP_FUNCTION(say_hello);

    保存文件退出
     

    5.編譯安裝

    #phpize
    #./configure --enable-hmc

    #make

    #make install

    應該在php的modules目錄下有一個hmc.so文件,不同的機器位置會不一樣

    php如何調用c接口無錯版  三聯

    6.修改PHP配置

    編輯php.ini,把擴展加入進去:
    在[PHP]模塊下增加:
    extension = hmc.so
    重啟Httpd

    #service httpd restart

     

    7.php調用

    建立一個c.php文件在對應的www目錄下

    <?
    say_hello();
    ?>

    這時浏覽器應該輸出:

    hello world

     

    8.調試

    可以在命令行下輸入

    #php –q c.php

    需要進入當前的www目錄下

    查看是否安裝好模塊可以用phpinfo()

    也可以適用php -m命令

    先用

    #which php

    找到php所在目錄,不同機器目錄不一樣

    #/usr/bin/php -m

     

    9.帶參數的函數

    Vi hmc.c

    修改最後的say_hello函數內容如下:

    PHP_FUNCTION(say_hello)
    {
    zval **yourname;
    if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &yourname) == FAILURE)

    {
    WRONG_PARAM_COUNT;
    }
    zend_printf("hello world, %sn", Z_STRVAL_PP(yourname));
    }


    修改c.php為

    <?
    say_hello(“清清月兒");
    ?>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved