php扩展安装示例(php扩展开发入门demo示例)
php扩展安装示例
php扩展开发入门demo示例本文实例讲述了php扩展开发。分享给大家供大家参考,具体如下:
一、进入php源码包,找到ext文件夹
|
cd /owndata/software/php-5 .4.13 /ext |
文件夹下放的都是php的相关扩展模块
二、生成自己的扩展文件夹和相关文件
php支持开发者开发自己的扩展,提供了ext_skel骨架,用来构建扩展基本文件
|
. /ext_skel --extname=myext |
运行完成后,会在ext目录下生产一个myext扩展目录
三、编写一个hello world简单测试扩展
cd myext
1.编辑myext目录下的config.m4文件
|
dnl PHP_ARG_WITH(myext, for myext support, dnl Make sure that the comment is aligned: dnl [ --with-myext Include myext support]) |
将上面这段改成
|
PHP_ARG_WITH(myext, for myext support, [ --with-myext Include myext support]) |
2.编辑php_myext.h文件
修改php_myext.h,看到PHP_FUNCTION(confirm_myext_compiled);
这里就是扩展函数声明部分,可以增加一
|
PHP_FUNCTION(myext_helloworld); |
3.编辑myext.c文件在这个里面增加一行PHP_FE(myext_helloworld, NULL)
|
const zend_function_entry myext_functions[] = { PHP_FE(confirm_myext_compiled, NULL) /* For testing, remove later. */ PHP_FE(myext_helloworld, NULL) PHP_FE_END /* Must be the last line in myext_functions[] */ }; |
最后在文件末尾加入myext_helloworld执行代码
|
PHP_FUNCTION(myext_helloworld) { char *arg = NULL; int arg_len, len; char *strg; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s" , &arg, &arg_len) == FAILURE) { return ; } php_printf( "my first ext,Hello World!\n" ); RETRUN_TRUE; } |
四、编译php扩展
在myext目录下运行phpize
/usr/local/webserver/php/bin/phpize
安装扩展
|
. /configure --with-php-config= /usr/local/webserver/php/bin/php-config make && make install |
然后在php安装的目录下生产.so的文件
/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/myext.so
复制myext.so文件到php安装的扩展目录下
|
cp myext.so /usr/local/webserver/php/ext/ |
编辑php.ini文件加入一行扩展路径
|
extension= /usr/local/webserver/php/ext/myext .so |
重启php-fpm
|
service php restart |
查看php扩展是否安装进去了
|
/usr/local/webserver/php/bin/php -m| grep myext |
确认成功后测试myext打印helloworld
|
/usr/local/webserver/php/bin/php -r "myext_helloworld('test');" |
或者创建demo.php
|
<?php echo myext_helloworld( 'test' ); ?> |
/usr/local/webserver/php/bin/php demo.php
运行后输出
my first ext,Hello World!
自此扩展开发小demo就实现了
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/lisqiong/p/5913302.html
- php中怎么判断变量类型(PHP INT类型在内存中占字节详解)
- php自定义函数返回多少个值(PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法)
- phpstudy 目录浏览宽度(JspStudy如何设置PHP根目录可编辑)
- yii2支持php7.2吗(Yii框架通过请求组件处理get,post请求的方法分析)
- 用php调用函数的换行(php中关于换行的实例写法)
- thinkphp中view视图的作用(Thinkphp5.0框架视图view的模板布局用法分析)
- 安装phpstudy注意哪些问题(phpstudy怎么卸载?phpstudy卸载图文教程)
- phpredis怎么实现任务(PHP swoole和redis异步任务实现方法分析)
- linux如何安装php环境(Linux下安装Memcached服务器和客户端与PHP使用示例)
- php有几种模式(php 策略模式原理与应用深入理解)
- thinkphp5分页数据怎么处理(TP5thinkPHP5框架实现显示错误信息及行号功能的方法)
- php如何异步操作(php链式操作的实现方式分析)
- php cookie(php更新cookie内容的详细方法)
- dedecms版本介绍(解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法)
- php 设置sessionid生成机制(PHP Cli 模式设置进程名称的方法)
- php命名空间真的存在吗(PHP中命名空间的使用例子)
- 相声转行影帝,被何晴抛弃,甩10年女友闪婚生子,刘威不靠谱情史(相声转行影帝被何晴抛弃)
- 岳云鹏不说相声,改行演员了 网友 快回来说相声(岳云鹏不说相声)
- 乔欣首演古装大女主,颜值演技双在线(乔欣首演古装大女主)
- 于正又推女性古装大剧 杨蓉乔欣演女配,两位女主成 重头戏(于正又推女性古装大剧)
- 乔欣古装女主戏获热度 作为女主,却没吃到红利(乔欣古装女主戏获热度)
- 爱情是什么(爱情是什么最经典的话)
热门推荐
- centos中docker安装部署(三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题)
- python分析excel基础数据生成报表(Python实现定制自动化业务流量报表周报功能XlsxWriter模块)
- php中如何使用缓存(PHP使用OB缓存实现静态化功能示例)
- js基础入门到高级教程(浅谈如何循序渐进的学好JS)
- 使用mui制作页面案例(Yii框架页面渲染操作实例详解)
- docker 快速搭建环境(如何自己搭建DockerHub实现过程解析)
- css3伸缩布局及使用方法(利用CSS3的flexbox实现水平垂直居中与三列等高布局)
- 香港云服务器哪个最好(香港云服务器和国内云服务器有什么区别?)
- MySQL中查询数据库的大小
- 虚拟主机跟云主机有什么区别(云主机和虚拟主机哪个好?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9