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读取远程txt文档到数组并实现遍历)
- php查询数据库给变量赋值(详解PHP变量传值赋值和引用赋值变量销毁)
- thinkphp实战教程之博客技术学习(python3编写ThinkPHP命令执行Getshell的方法)
- php如何继承多个类(PHP面向对象程序设计子类扩展父类子类重新载入父类操作详解)
- thinkphp标签详解(thinkphp整合系列之极验滑动验证码geetest功能)
- phpstudy安装包打不开(phpStudy访问速度慢和启动失败的解决办法)
- php运行机制与原理(PHP进阶学习之类的自动加载机制原理分析)
- thinkphp兼容dedecms(DedeCMS Error:Tag disabled:"php"的解决办法)
- iis上搭建php环境(vultr服务器windows server 2012 r2搭建IIS8+PHP+MYSQL+phpMyAdmin运行环境图文教程)
- php教程微信支付技术(php微信扫码支付 php公众号支付)
- php中三种变量的作用区域(PHP global全局变量经典应用与注意事项分析附$GLOBALS用法对比)
- php用什么解压(php解压缩zip和rar压缩包文件的方法)
- php探针哪个牌子好用(php探针使用原理和技巧讲解)
- python微信红包代码(php生成微信红包数组的方法)
- php根据名称规则判断文件是否存在(PHP中上传文件打印错误错误类型分析)
- php代码生成器(PHP迭代器和生成器用法实例分析)
- 文明6金币太少怎么办 文明6无限刷钱教程(文明6金币太少怎么办)
- 开国中将,王牌军63军首任政委,两个连襟一个上将一个少将传为佳话(王牌军63军首任政委)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
热门推荐
- 阿里云服务器扩容了怎么恢复(一条命令解决阿里云服务器系统盘空间不足问题)
- windowsserver如何安装iis(windows Server2012 IIS8.0配置安装完整教程)
- sqlserver索引介绍(浅析SQL Server的聚焦使用索引和查询执行计划)
- 宝塔怎么设置指定ip访问(宝塔面板如何禁止某个IPIP段访问)
- 云服务器租用怎么收费(云服务器租用注意事项有哪些?)
- python实现栈和队列(Python利用heapq实现一个优先级队列的方法)
- 如何获取gridview隐藏列的值
- 阿里云ECS实例中部署的Web网站运行速度慢的解决方法(阿里云ECS实例中部署的Web网站运行速度慢的解决方法)
- laravel指定管理员(在laravel-admin中列表中禁止某行编辑、删除的方法)
- web中如何预防xss攻击(详解前端安全之JavaScript防http劫持与XSS)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9