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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

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

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

目標(biāo):便攜php擴(kuò)展 要求實(shí)現(xiàn) 輸出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 是選擇的低版本 這個(gè)(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.第一個(gè)擴(kuò)展

2.1 輸入:

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

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

此時(shí)會(huì)生成:

cd hello/

ls ?會(huì)看到幾個(gè)文件

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 代碼實(shí)現(xiàn)

/*新增方法 該方法 必須放在 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)//這個(gè)可以刪除了。/* For testing, remove later. */PHP_FE_END /* Must be the last line in hello_functions[] */}

執(zhí)行命令 ?phpize ( linux 下 用phpize 給php 動(dòng)態(tài)添加擴(kuò)展。)

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

phpize ?成功之后會(huì)生成一些文件?

此時(shí)進(jìn)行編譯 ./configure

make ?此時(shí)會(huì)有一個(gè) modus 的文件夾 ?文件夾中會(huì)有2個(gè)文件 ?

hello.la? hello.so

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

同時(shí)?改更php.ini 加上

[hello]

extenstion=hello.so

擴(kuò)展使用?

[root@bogon hello]# ?ls

會(huì)有一個(gè) hello.php ?文件

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

輸出了 hello word?

?

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

  • 請(qǐng)尊重本人勞動(dòng)成功,可以隨意轉(zhuǎn)載但保留以下信息
  • 作者:歲月經(jīng)年
  • 時(shí)間:2016年03月

轉(zhuǎn)載于:https://www.cnblogs.com/yhl664123701/p/5310094.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。