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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php扩展开发1--添加函数

發布時間:2023/12/9 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php扩展开发1--添加函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目標:便攜php擴展 要求實現 輸出hello word

首先用的是php7.0.3 ? centos7.1或者centos6.+

1.1 RPM安裝PHP
  • rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  • yum install php70w
  • php -v 看一下 7.0.3
  • php -m 看一下 php70w-devel, php70w-opcache模塊安裝沒有,沒有的話安裝一下
  • PS:如果你的centos 是選擇的低版本 這個(https://mirror.webtatic.com/yum/el7/webtatic-release.rpm)連接的中el7也得修改。
1.2 下載php源碼包 ?注意版本
  • http://hk1.php.net/distributions/php-7.0.3.tar.gz (wget命令)
  • 把源碼放在/usr/local/src/下解壓

2.第一個擴展

2.1 輸入:

[root@bogon ext]# cd /usr/local/src/php-7.0.3/ext

[root@bogon ext]# ./ext_skel --extname-hello ??

此時會生成:

cd hello/

ls ?會看到幾個文件

config.m4? config.w32? CREDITS? EXPERIMENTAL? hello.c? hello.php? php_hello.h? tests

2.2修改配置

[root@bogon ext]# vim hello/config.m4

  • dnl PHPARGWITH(hello, for hello support,
  • dnl Make sure that the comment is aligned:
  • dnl [ --with-hello Include hello support])
  • 更改為:
  • PHPARGWITH(hello, for hello support,
  • dnl Make sure that the comment is aligned:
  • [ --with-hello Include hello support])

2.3 代碼實現

/*新增方法 該方法 必須放在 const zend_function_entry * hello_functions[] 上面 */PHP_FUNCTION(hello){zend_string *strg;strg = strpprintf(0, "hello word");RETURN_STR(strg);}const zend_function_entry hello_functions[] = {PHP_FE(hello, NULL) /* For testing, remove later. */PHP_FE(confirm_hello_compiled, NULL)//這個可以刪除了。/* For testing, remove later. */PHP_FE_END /* Must be the last line in hello_functions[] */}

執行命令 ?phpize ( linux 下 用phpize 給php 動態添加擴展。)

如果phpize ?執行失敗 ? 可能是缺少 gcc ?(yum ?install ?gcc)

phpize ?成功之后會生成一些文件?

此時進行編譯 ./configure

make ?此時會有一個 modus 的文件夾 ?文件夾中會有2個文件 ?

hello.la? hello.so

make install 或者 直接運行命令(cp modules/hello.so ?/usr/lib64/php/modules)

同時?改更php.ini 加上

[hello]

extenstion=hello.so

擴展使用?

[root@bogon hello]# ?ls

會有一個 hello.php ?文件

[root@bogon tests]# cat test.php <?php echo hello(); echo "\r\n";[root@bogon tests]# php test.php hello word

輸出了 hello word?

?

此文轉載于 ?原連接?http://www.djhull.com/phpext/php-ext-1.html

  • 請尊重本人勞動成功,可以隨意轉載但保留以下信息
  • 作者:歲月經年
  • 時間:2016年03月

轉載于:https://www.cnblogs.com/yhl664123701/p/5310094.html

總結

以上是生活随笔為你收集整理的php扩展开发1--添加函数的全部內容,希望文章能夠幫你解決所遇到的問題。

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