发表时间:2014-09-05来源:网络
在linux下面完成了LAMP的配置环境之后,就可以进行php的扩展开发了。
php中的扩展开发都在源码包的/ext文件夹之下,可以看到这里已经有了很多开发好的扩展。比如与数据库相关的mysql以及xml处理的模块等等。
首先建立一个文件夹:
mkdir hello
在进入这个文件夹之后,先创建并打开一个配置文件:
vim config.m4
这个给出一个配置问题的实例:
1 PHP_ARG_ENABLE(sample, whether to enable SAMPLE support,2 [ --enable-sample Enable SAMPLE support])3 if test "$PHP_SAMPLE" = "yes"; then4 AC_DEFINE(SAMPLE, 1, [Whether you have SAMPLE])5 PHP_NEW_EXTENSION(sample, sample.c, $ext_shared)6 fi* 这个配置文件创造了一个--enable-hello的配置选项,而PHP_ARG_ENABLE的第二个选项会在配置的时候显示出来
1 ?#ifndef PHP_SAMPLE_H2 /* 防止两次引入 */3 #define PHP_SAMPLE_H4 /* 定义扩展的性质 */5 #define PHP_SAMPLE_EXTNAME "sample"6 #define PHP_SAMPLE_EXTVER "1.0"7 /* 当在php的源码树之外build的时候,引入配置选项, 在使用phpize工具时,一般都是先定义的 */8 #ifdef HAVE_CONFIG_H9 #include "config.h"10 #endif11 /* 引入php标准头文件 */12 #include "php.h"13 PHP_FUNCTION(hello_world);//声明扩展中的函数14 /* 定义入口点的符号,zend在加载这个module的时候会用*/15 extern zend_module_entry sample_module_entry;16 #define phpext_sample_ptr &sample_module_entry17 #endif /* PHP_SAMPLE_H */最后再注意两点:* php.h则是一定要引入的
#include "php_sample.h" static function_entry php_sample_functions[] = { PHP_FE(sample_hello_world, NULL)//任何扩展中的函数都要在这里声明。把函数名输出到了用户空间中 { NULL, NULL, NULL } };zend_module_entry sample_module_entry = { //创建一个入口 #if ZEND_MODULE_API_NO >= 20010901 //这个是一个版本号 STANDARD_MODULE_HEADER, #endif PHP_SAMPLE_EXTNAME, php_sample_functions, /* Functions 这里是把php_function加入到Zend中去*/ NULL, /* MINIT */ NULL, /* MSHUTDOWN */ NULL, /* RINIT */ NULL, /* RSHUTDOWN */ NULL, /* MINFO */ #if ZEND_MODULE_API_NO >= 20010901 PHP_SAMPLE_EXTVER, #endif STANDARD_MODULE_PROPERTIES};#ifdef COMPILE_DL_SAMPLEZEND_GET_MODULE(sample)#endif //这块区域是当扩展被动态加载的时候,为Zend添加一个引用,记得要添加上就行。/*真正的函数体的部分*/PHP_FUNCTION(sample_hello_world){ php_printf("Hello World!/n");}这就是源码的内容了。
下一篇:php $_server应用
CI框架连接数据库配置操作以及多数据库操作
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
C语言关键字及其解释介绍 C语言32个关键字详解
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
PHP中include和require区别之我见
PHP中的(++i)前缀自增 和 (i++)后缀自增
将视频设置为Android手机开机动画的教程
php递归返回值的问题
掌上小满app(又名OKKI)下载v6.24.2 安卓版
108.1M |商务办公
星巴克中国官方版app下载v10.9.3 安卓版
138.0M |生活服务
abc reading app手机版下载v7.3.35 安卓最新版本
218.9M |学习教育
智慧联想摄像头app(更名智享家)下载v4.1.6.2 安卓最新版本
211.4M |生活服务
星通货主app下载v902 安卓版
142.5M |生活服务
火花思维官方版下载v2.1.1 安卓手机版
208.6M |学习教育
火山小视频极速版2025(改名抖音火山版)下载v33.4.0 安卓官方正版
248.5M |影音播放
泰州通app下载v2.2.2 安卓版
126.9M |商务办公
2022-03-21
2022-03-17
2014-09-05
2014-09-05
2015-07-05
2022-03-21
2014-09-05
2014-09-05
2014-09-05
2022-03-20