linux编写php,Linux 下编写一个 PHP 扩展

本文详细介绍了如何在PHP 5.6.9环境下开发一个名为helloWorld的扩展,包括修改config.m4、添加PHP_FUNCTION(helloWorld)、更新helloWorld.c文件以及编译安装过程。通过这些步骤,读者可以学习到PHP扩展开发的基本流程,并可根据需求创建自己的扩展功能。
摘要由CSDN通过智能技术生成

假设需求

开发一个叫做 helloWord 的扩展。

扩展里有一个函数,helloWord()。

echo helloWord('Tom'); //返回:Hello World: Tom

本地环境

PHP版本:5.6.9

系统:Linux CentOS release 6.5 (Final)

最终效果

eb2343f78892306d71c1c0004fe8f9d1.png

实现流程

第一步:

进入到本地的php目录执行: cd /root/soft/src/php-5.6.9 cd ext ./ext_skel --extname=helloWord cd helloWord vi config.m4 搜索:dnl Otherwise use enable 将下面修改成: PHP_ARG_ENABLE(helloWorld, whether to enable helloWorld support, [  --enable-helloWorld           Enable helloWorld support]) if test "$PHP_HELLOWORLD" != "no"; then ...

如图:

090328b2ed3015fb85e11fad035d9792.png

第二步:

vi php_helloWorld.h 搜索:extern zend_module_entry 新增一行: PHP_FUNCTION(helloWorld);

如图:

cf1a98e21121e7ebc8c7ee5bb85fd201.png

第三步:

vi helloWorld.c 搜索:const zend_function_entry helloWorld_functions[] 新增一行: PHP_FE(helloWorld, NULL)

如图:

21f4f5e4ab9b0307e01d819d2b203452.png

在 helloWorld.c 底部新增一个方法 PHP_FUNCTION(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;    }    len = spprintf(&strg, 0, "Hello World: %s", arg);    RETURN_STRINGL(strg, len, 0); }

如图:

72f7175cb1833c30e1343bbcc21dbd9c.png

第四步:

//编译安装 cd /root/soft/src/php-5.6.9/ext /usr/local/php/bin/phpize #用phpize生成configure配置文件 ./configure --with-php-config=/usr/local/php/bin/php-config   #配置 make  #编译 make install  #安装

第五步:

//修改php.ini extension="helloWorld.so"   #名称为安装扩展的名称

第六步:

重启环境。

完成上面的步骤,简单的 helloWorld 扩展就OK了。

大家可以根据自己的需求,开发满足自己的扩展。

比如,可以开发一些扩展类,扩展方法,等等。

如果大家需要下载helloWorld扩展包,可以关注微信公众号。

回复 “helloWorld” 即可。

Thanks ~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值