>  기사  >  php教程  >  PHP扩展库开发

PHP扩展库开发

WBOY
WBOY원래의
2016-06-06 19:42:22973검색

进入到下载的php源码文件中的ext文件夹下 1.cd XXXXX/ext 2.执行ext_skel命令 ./ext_skel --extname=my_module 3.在ext的文件夹下会多出一个名为my_module的文件夹 进入到my_module的文件夹中 cd my_module 4.打config.m4文件 找到如下三行 dnl PHP_ARG_ENAB

进入到下载的php源码文件中的ext文件夹下

1.cd XXXXX/ext

2.执行ext_skel命令

./ext_skel --extname=my_module

3.在ext的文件夹下会多出一个名为my_module的文件夹

进入到my_module的文件夹中

cd my_module

4.打config.m4文件

找到如下三行

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

把这三行前面的dnl去掉,保存

5.修改php_my_module.h文件

在 PHP_FUNCTION(confirm_my_module_compiled);后面加入一行

PHP_FUNCTION(my_func);

6.my_module.c文件的

const zend_function_entry my_module_functions[] = {
    PHP_FE(confirm_my_module_compiled,  NULL)   /* For testing, remove later.     */
    PHP_FE_END  /* Must be the last line in my_module_functions[] */
 };
中加入PHP_FE(my_func,NULL)

加入后的代码如下:

const zend_function_entry my_module_functions[] = {
    PHP_FE(confirm_my_module_compiled,  NULL)   /* For testing, remove later.     */
    PHP_FE(my_func,NULL)
    PHP_FE_END  /* Must be the last line in my_module_functions[] */
 };

7.在my_module.c文件的结尾处加入my_func函数的实现代码

PHP_FUNCTION(my_func){
   php_printf("这是我的第一个扩展库");

 }

8.编译安装自己的扩展库

进入到my_module目录下

cd ext/my_module

执行  /usr/loca/php/bin/phpize

./configure --with-php-config=/usr/loca/php/bin/php-config

make & make install

9.在/usr/loca/php/lib/php/extensions/no-debug-non-zts-XXXX目录下生成了一个my_module.so的文件

打开/usr/local/php/lib/php.ini加入一行配置

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-XXXX/my_module.so

10.生启apache服务

编写一个测试文件test.php

<?php my_func();
?>

打开浏览器输入

localhost/myweb/test.php

回车在浏览器的页面上显示"这是我的第一个扩展库"

至此一个新的php扩展库开发完成

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.