博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用C开发PHP扩展 实例(基础版)
阅读量:6682 次
发布时间:2019-06-25

本文共 1401 字,大约阅读时间需要 4 分钟。

第一步:建立扩展骨架。

cd /usr/local/src/php-5.3.6/ext/./ext_skel --extname=laiwenhui

第二步:修改编译参数。

cd php-5.3.6/ext/laiwenhuivi config.m4

去掉

PHP_ARG_ENABLE(laiwenhui, whether to enable laiwenhui support,
[  --enable-laiwenhui           Enable laiwenhui support])
两行前面的dnl
修改后为:
dnl Otherwise use enable:
PHP_ARG_ENABLE(laiwenhui, whether to enable laiwenhui support,
dnl Make sure that the comment is aligned:
[  --enable-laiwenhui           Enable laiwenhui support])

第三步:编写代码

vim  php_laiwenhui.h

PHP_FUNCTION(confirm_laiwenhui_compiled);
后面新增一行
PHP_FUNCTION(test);

vim laiwenhui.c

 

PHP_FE(confirm_laiwenhui_compiled, NULL)

后面添加

PHP_FE(test, NULL)
**在文件最后面增加如下代码:**

PHP_FUNCTION(test){char *arg = "This is my first extention!";int  len;char *strg;len = spprintf(&strg, 0, "%s\n", arg);RETURN_STRINGL(strg, len, 0);}

第四步:编译代码

/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake install

我的PHP安装路径为:/usr/local/php
这个时候会生成一个文件 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/laiwenhui.so
编辑PHP配置文件php.ini,添加扩展:

vim php.ini

在[PHP]模块下增加:

extension = laiwenhui.so

把php.ini 文件中的 extension_dir 修改为该目录:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

第五步:检查安装结果

1.重启php-fpm,ngixn
2./use/local/php/bin/php -m
看下是否有包含laiwenhui扩展。

第六步:执行测试代码

在网站根目录创建test.php
vim test.php
代码内容如下
<?php
echo test();
执行后结果为:
This is my first extention!
如果你能顺利完成以上几步,恭喜你完成了第一个扩展。

转载地址:http://amxao.baihongyu.com/

你可能感兴趣的文章
SCCM 2016 为客户端分发管理组件Configuration Manager(一)
查看>>
交换机SPAN功能配置
查看>>
Restful学习随笔
查看>>
CurrentRowColor 选中行 颜色改变
查看>>
内容溢出显示省略号
查看>>
更改matlab默认工作路径
查看>>
JavaScript 书籍推荐(转)
查看>>
Adobe:彻底解决Firefox与Flash插件卡顿
查看>>
凡客和锤子
查看>>
设计模式(5)--单例模式
查看>>
pitch yaw roll是什么
查看>>
深浅copy
查看>>
Hibernate之一级缓存
查看>>
Python基础之定义有默认参数的函数
查看>>
iOS5中的UUID
查看>>
(转载)XML Tutorial for iOS: How To Read and Write XML Documents with GDataXML
查看>>
poj 3259 Wormholes
查看>>
py学习之道
查看>>
o(1)复杂度之双边滤波算法的原理、流程、实现及效果。
查看>>
python中requests模块使用
查看>>