php扩展编写
PHP #扩展2012-04-26 17:18
现在写个简单的 helloworld
1 获取php源码包解压
wget http://
tar
2 进入php源码包ext 目录
cd php-5.2.14/ext
3 生成扩展框架
./ext_skel --extname=wang
实例:
--------------
[root@domain09 ext]# ./ext_skel --extname=wang
Creating directory wang
Creating basic files: config.m4 config.w32 .cvsignore wang.c php_wang.h CREDITS EXPERIMENTAL tests/001.phpt wang.php [done].
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/wang/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-wang
5. $ make
6. $ ./php -f ext/wang/wang.php
7. $ vi ext/wang/wang.c
8. $ make
Repeat steps 3-6 until you are satisfied with ext/wang/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
------------------------------------------------------------------
这个命令会在php-5.2.14/ext目录里面生成 wang目录 并在该目录生成一些文件 其中用到的 是3个文件 一个是config.m4 一个是php_wang.h 一个是 wang.c
实例:
------------------------------------------------------
[root@domain09 wang]# ll
total 64
-rw-r--r-- 1 root root 1975 Jan 20 09:59 config.m4
-rw-r--r-- 1 root root 282 Jan 20 09:59 config.w32
-rw-r--r-- 1 root root 4 Jan 20 09:59 CREDITS
-rw-r--r-- 1 root root 0 Jan 20 09:59 EXPERIMENTAL
-rw-r--r-- 1 root root 2666 Jan 20 09:59 php_wang.h
drwxr-xr-x 2 root root 4096 Jan 20 09:59 tests
-rw-r--r-- 1 root root 5133 Jan 20 09:59 wang.c
-rw-r--r-- 1 root root 496 Jan 20 09:59 wang.php
------------------------------------------------------------
编辑 这三个文件
vi config.m4
把下面这两句前面的的dnl去掉,保存
dnl PHP_ARG_ENABLE(wang, whether to enable wang support,
dnl [ --enable-wang Enable wang support])
vi php_wang.h
找到PHP_FUNCTION(confirm_wang_compiled); /* For testing, remove later. */
,新增一行:
PHP_FUNCTION(wang_test);
保存
vi wang.c
代码后面加上你的c代码
比如
PHP_FUNCTION(wang){
RETURN_STRING("hello world! wangchenglin",1);
}
然后开始编译
[root@domain09 wang]# phpize
[root@domain09 wang]# ./configure --with-php-config=/usr/local/ku6/php/bin/php-config
[root@domain09 wang]# make
然后 wang/modules/下会生成一个wang.so
cp 到php的extensions目录 然后 vi php.ini 加上
extension = wang.so
重启php
<?php
phpinfo();
echo wang();
?>
相关文章
- PHP禁止eval() 2012/04/26
- php的攻击手法总结 2012/04/26
- PHP判断浏览器类型的代码 2012/04/26
- php优化42点建议 2012/04/25
- php常用到却易混淆的函数/概念 2012/04/25
- php.ini配置中文版详解 2012/04/24
- PHP防注入配置 2012/04/24
- PHP的socket函数用法 2012/04/22
- PHP用socket上传图片代码 2012/04/22
- PHP关于日/周/月点击统计代码 2012/04/22