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--添加函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uva 10245 The Closes
- 下一篇: HDU题目分类