您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > php功能扩展动态模块库开发
xjx-jx@163.com1/10php功能扩展模块库开发通过php扩展库的开发,对原有自开发的C动态库进行简单的二次封装,即可在PHP网页中调用自开发的库功能,减少复杂逻辑的重复开发!1、WEB服务的配置要支持扩展库的加载,需对php的配置进行修改打开相应功能修改/usr/local/arm/php5.5.17/etc/php.ini中的enable_dl=On和extension_dir=/usr/local/arm/php5.5.17/lib安装的php的目录结构2、Linux库示例程序代码如下:xjx-jx@163.com2/10执行如下命令编译生成动态库:生成库文件把此libxyz开头的库文件复制到目标系统的库目录下3、Php扩展库开发过程本文示例环境是基于php-5.5.17的开源软件版本下的(1)进到源码目录php-5.5.17/ext/下执行ext_skel,注意执行此脚本时,当前目录必须是ext在ext目录下会自动生成libphp_xyz目录及其下的相关文件,这些文件是php扩展库的基本模板内容,然后就可把libphp_xyz目录移到工程目录下(2)在libphp_xyz目录下新建Makefile,内容如下:注意:-DCOMPILE_DL_LIBPHP_XYZ在libphp_xyz.c文件代码中会引用,生成的不同的库则会不同,具体从代码中复制过来,如果此宏定义与代码文件中对应的宏不一致,则库无法被php服务加载的!xjx-jx@163.com3/10目录内容如下:(3)修改libphp_xyz.c和php_libphp_xyz.h文件,加入自己需要的功能函数php_libphp_xyz.h文件:xjx-jx@163.com4/10libphp_xyz.c文件xjx-jx@163.com5/10注意:此处的COMPILE_DL_LIBPHP_XYZ就是Makefile文件中用到的xjx-jx@163.com6/10xjx-jx@163.com7/10(4)修改完代码后,执行make进行编译,如果正确没有报错的话,则会生成库文件libphp_xyz.so4、把上一步生成的库libphp_xyz.so放到php的对应lib目录中libxyz.solibxyz.so.1libxyz.so.1.0libxyz.so.1.0.0房到系统可搜索的目录中xjx-jx@163.com8/10然后修改php.ini文件,把libphp_xyz.so加进去以让php服务加载,之后重启web服务(lighttpd)注意:必须重启web服务才能生效5、以上都成功完成的话,用下面的php网页浏览就可显示查看php的服务信息,其中就包含了新开发的模块信息htmlhead/headbody?phpphpinfo();?/body/html6、写如下的php代码可调用上面的扩展库功能xjx-jx@163.com9/10用浏览器访问此网页的结果如下当调试OK后,就可去掉库代码中的输出,就不会在网页上输出上图红线标的信息!xjx-jx@163.com10/10这段代码是由库模板生成程序自动产生的完
本文标题:php功能扩展动态模块库开发
链接地址:https://www.777doc.com/doc-2850395 .html