广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >怎么写PHP扩展
  • 229
分享到

怎么写PHP扩展

2023-06-17 03:06:38 229人浏览 安东尼
摘要

这篇文章主要介绍“怎么写PHP扩展”,在日常操作中,相信很多人在怎么写php扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么写PHP扩展”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!从hello w

这篇文章主要介绍“怎么写PHP扩展”,在日常操作中,相信很多人在怎么写php扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么写PHP扩展”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

从hello world开始(试读) 

以下内容以PHP7作为基础,讲解如何从零开始创建一个PHP扩展。示例中,我们将实现如下功能:

<?php function say() {     return "hello Word"; }echo say(); ?>

输出内容:

$ php ./test.php $ hello word

在扩展中实现一个say方法,调用say方法后,输出 hello word。

***步:生成代码

PHP为我们提供了生成基本代码的工具 ext_skel。这个工具在PHP源代码的./ext目录下。

$ cd php_src/ext/    $ ./ext_skel --extname=say

extname参数的值就是扩展名称。执行ext_skel命令后,这样在当前目录下会生成一个与扩展名一样的目录。

第二步:修改config.m4配置文件

config.m4的作用就是配合phpize工具生成configure文件。configure文件是用于环境检测的。检测扩展编译运行所需的环境是否满足。现在我们开始修改config.m4文件。

$ cd ./say   $ vim ./config.m4

打开,config.m4文件后,你会发现这样一段文字。

dnl If your extension references something external, use with:  dnl PHP_ARG_WITH(say, for say support, dnl Make sure that the comment is aligned: dnl [  --with-say             Include say support])  dnl Otherwise use enable:   dnl PHP_ARG_ENABLE(say, whether to enable say support, dnl Make sure that the comment is aligned: dnl [  --enable-say           Enable say support])

其中,dnl 是注释符号。上面的代码说,如果你所编写的扩展如果依赖其它的扩展或者lib库,需要去掉PHP_ARG_WITH相关代码的注释。否则,去掉 PHP_ARG_ENABLE 相关代码段的注释。我们编写的扩展不需要依赖其他的扩展和lib库。

因此,我们去掉PHP_ARG_ENABLE前面的注释。去掉注释后的代码如下:

 dnl If your extension references something external, use with:   dnl PHP_ARG_WITH(say, for say support,  dnl Make sure that the comment is aligned:  dnl [  --with-say             Include say support])   dnl Otherwise use enable:   PHP_ARG_ENABLE(say, whether to enable say support,  Make sure that the comment is aligned:  [  --enable-say           Enable say support])

第三步:代码实现

修改say.c文件。实现say方法。 找到PHP_FUNCTION(confirm_say_compiled),在其上面增加如下代码:

PHP_FUNCTION(say) {         zend_string *strg;        strg = strpprintf(0, "hello word");         RETURN_STR(strg); }

找到 PHP_FE(confirm_say_compiled, 在上面增加如下代码:

PHP_FE(say, NULL)

修改后的代码如下:

const zend_function_entry say_functions[] = {      PHP_FE(say, NULL)             PHP_FE(confirm_say_compiled,    NULL)             PHP_FE_END    };  

第四步:编译安装

编译扩展的步骤如下:

$ phpize $ ./configure $ make && make install

修改php.ini文件,增加如下代码:

[say] extension = say.so

然后执行,php -m 命令。在输出的内容中,你会看到say字样。

第五步:调用测试

自己写一个脚本,调用say方法。看输出的内容是否符合预期。

<?php echo say(); ?>

输出内容:

$ php ./test.php $ hello word

到此,关于“怎么写PHP扩展”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么写PHP扩展

本文链接: https://www.lsjlt.com/news/287079.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么写PHP扩展
    这篇文章主要介绍“怎么写PHP扩展”,在日常操作中,相信很多人在怎么写PHP扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么写PHP扩展”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!从hello w...
    99+
    2023-06-17
  • php的扩展写法是怎样的
    php的扩展写法是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。为什么要用C扩展C是静态编译的,执行效率比PHP代码高很...
    99+
    2022-10-18
  • golang如何编写PHP扩展
    这篇文章主要为大家展示了golang如何编写PHP扩展,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“golang如何编写PHP扩展”这篇文章吧。golang适合做什么golang可以做服务器端开发...
    99+
    2023-06-06
  • php扩展编写的方法是什么
    编写 PHP 扩展的方法通常有以下几个步骤:1. 确定扩展的功能:首先确定要扩展的功能,即需要为 PHP 提供哪些新的功能或功能增强。2. 创建扩展的源代码文件:在 PHP 的源代码目录中创建一个新的目录,并在其中创建扩展的源代码文件。...
    99+
    2023-08-11
    php
  • 如何解析Zephir写PHP扩展
    这篇文章给大家分享的是有关如何解析Zephir写PHP扩展的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。众所周知 要写PHP扩展需要用c或者c++ 语言 配合 ext_skel 实现这样对一个没接触过c++的PH...
    99+
    2023-06-15
  • 怎么安装php ffpemg扩展
    安装php ffpemg扩展的方法:1、通过“git clone https://github.com/tony2001/ffmpeg-php.git”下载“ffmpeg-php”扩展;2、通过对应版本的phpize生成configure文...
    99+
    2023-05-14
    ffpemg php
  • php怎么增加mysql扩展
    本文操作环境:CentOS release 5.8系统,PHP5.6版,Dell G3电脑。php怎么增加mysql扩展?php 添加mysql扩展:os:CentOS release 5.8 (Final)php 版本:http://cn...
    99+
    2019-03-27
    php mysql扩展
  • win php怎么安装扩展
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑win php怎么安装扩展?windows环境下PHP安装扩展PHP安装扩展一、php扩展管理1.什么是php扩展php扩展就是php核心并不支持的功能,然后可以通过扩展...
    99+
    2015-07-22
    windows PHP
  • ubuntu 怎么安装php扩展
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑ubuntu 怎么安装php扩展ubuntu 16.04 安装PHP扩展以前在windows 上开启php扩展,就是直接在php.ini文件中找到相应的扩展,然后去掉前面...
    99+
    2021-10-01
    ubuntu php扩展
  • php怎么安装ldap扩展
    本文操作环境:centOS6.8系统、PHP7.0版、DELL G3电脑php怎么安装ldap扩展?Centos下安装PHP ldap扩展Centos下安装PHP ldap扩展,有两种方法,仅供参考。一、在线安装执行下面命令:yum ins...
    99+
    2017-05-14
    php centos ldap
  • 怎么安装php zookeeper扩展
    本教程操作环境:centos6.4系统、PHP5.5.10版,DELL G3电脑ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为...
    99+
    2016-04-04
    php zookeeper扩展
  • 怎么增加php mssql扩展
    本文操作环境:linux5.9.8系统、php-5.2.17版、DELL G3电脑怎么增加php mssql扩展?php安装mssql扩展 关于freetds编译时with-tdsver参数 在FreeTDS 1.1版本之后,可以设置为au...
    99+
    2021-11-24
    mssql php
  • php怎么添加pthreads扩展
    本篇内容介绍了“php怎么添加pthreads扩展”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下载地址:...
    99+
    2022-10-19
  • php怎么开启redis扩展
    php开启redis扩展的方法:集成环境:phpstudy。下载扩展文件:php_redis.dll,地址:https://pecl.php.net/package/redis。下载解压后,把“php_redis.dll”和“php_red...
    99+
    2022-10-08
  • php curl扩展怎么安装
    要安装PHP的CURL扩展,您可以按照以下步骤进行操作:1. 打开终端或命令提示符,进入PHP安装目录的扩展目录。例如,如果您的PH...
    99+
    2023-10-11
    php
  • 怎么安装php扩展-amqp
    这篇文章主要介绍了怎么安装php扩展-amqp,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hy...
    99+
    2023-06-14
  • PHP怎么安装fileinfo扩展
    这篇文章主要介绍PHP怎么安装fileinfo扩展,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP下的fileinfo函数通过在文件的给定位置查找特定的魔术字节序列,来获取文件的MIME信息。下面就和小编译器了解...
    99+
    2023-06-20
  • PHP怎么安装Libevent扩展
    小编给大家分享一下PHP怎么安装Libevent扩展,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!libevent是一个事件触发的网络库,适用于windows、l...
    99+
    2023-06-20
  • PHP怎么安装扩展bcmath
    这篇文章主要讲解了“PHP怎么安装扩展bcmath”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么安装扩展bcmath”吧!编译php时忘记添加某扩展,后来想添加扩展,但是因为安装p...
    99+
    2023-06-20
  • php怎么安装kafka扩展
    这篇文章主要介绍了php怎么安装kafka扩展,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、安装librdkafka# cd /usr/local/s...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作