日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

用C语言写PHP扩展 linux

發布時間:2025/3/15 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用C语言写PHP扩展 linux 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:預定義

在home目錄,也可以其他任意目錄,寫一個文件,例如caleng_module.def

內容是你希望定義的函數名以及參數:

int a(int x,int y)
string b(string str,int n)
?
2:到php源碼目錄的ext目錄
#cd /usr/local/php-5.4.0/ext/
?
執行命令,生成對應擴展目錄
#./ext_skel --extname=caleng_module --proto=/home/hm/caleng_module.def

?

3:修改config.m4

去掉dnl的注釋


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

4:修改caleng_module.c

/* {{{ proto int a(int x, int y) ????*/ PHP_FUNCTION(a) { ????int argc = ZEND_NUM_ARGS(); ????int x; ????int y; ????int z; ????if?(zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE) ????????? ????????return; z=x+y; ????????RETURN_LONG(z); } /* }}} */ /* {{{ proto string b(string str, int n) ????*/ PHP_FUNCTION(b) { ????char *str = NULL; ????int argc = ZEND_NUM_ARGS(); ????int str_len; ????long n; ????char *result; ????char *ptr; ????int result_length; ?? ????if?(zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE) ????????return; ????result_length = str_len * n; ????result = (char *) emalloc(result_length + 1); ????ptr = result; ????while?(n--) { ????????memcpy(ptr, str, str_len); ????????ptr += str_len; ????} ????*ptr = '\0'; ????RETURN_STRINGL(result, result_length, 0); } /* }}} */

?5:生成擴展庫

#cd ./caleng_module
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config
#make
#make install

?

6:到php的對應extensions目錄

如上圖所示

#cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

改目錄下有生成的caleng_module.so文件

?

7:修改php.ini

php.ini如果找不到可以從phpinfo()打出的信息看到

#cd /usr/local/php/lib/

php.ini增加擴展信息

extension=caleng_module.so

?

8:重啟Apache

# /usr/local/apache2/bin/apachectl restart

?

9:檢查加載

?/usr/local/php/bin/php -m

?

10:PHP調用

echo a(1,2);

?

輸出 3? 就說明成功了!

?

http://www.cnblogs.com/zfying/archive/2012/07/31/2616402.html

轉載于:https://www.cnblogs.com/andhm/archive/2012/08/10/2631923.html

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的用C语言写PHP扩展 linux的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。