Heim  >  Artikel  >  Backend-Entwicklung  >  用C开发PHP扩展 实例(基础版)_PHP教程

用C开发PHP扩展 实例(基础版)_PHP教程

WBOY
WBOYOriginal
2016-07-15 13:21:24939Durchsuche

第一步:建立扩展骨架。
[html]
cd /usr/local/src/php-5.3.6/ext/ 
./ext_skel --extname=laiwenhui 

cd /usr/local/src/php-5.3.6/ext/
./ext_skel --extname=laiwenhui第二步:修改编译参数。
[html] view plaincopyprint?cd php-5.3.6/ext/laiwenhui 
vi config.m4 

cd php-5.3.6/ext/laiwenhui
vi 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])


第三步:编写代码
[html]
vim  php_laiwenhui.h 

vim  php_laiwenhui.h

PHP_FUNCTION(confirm_laiwenhui_compiled);

后面新增一行

PHP_FUNCTION(test);

[html]
vim laiwenhui.c 

vim laiwenhui.c

PHP_FE(confirm_laiwenhui_compiled, NULL)

后面添加
PHP_FE(test, NULL)


**在文件最后面增加如下代码:**
[html]
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); 

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);
}第四步:编译代码
[html]
/usr/local/php/bin/phpize 
./configure --with-php-config=/usr/local/php/bin/php-config 
make 
make install 

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
我的PHP安装路径为:/usr/local/php
这个时候会生成一个文件 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/laiwenhui.so

编辑PHP配置文件php.ini,添加扩展:
[html]
vim php.ini 

vim php.ini在[PHP]模块下增加:
[html]
extension = laiwenhui.so 

extension = laiwenhui.so把php.ini 文件中的 extension_dir 修改为该目录:
[html]
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/" 

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
代码内容如下
echo test();

执行后结果为:
This is my first extention!

如果你能顺利完成以上几步,恭喜你完成了第一个扩展。

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477166.htmlTechArticle第一步:建立扩展骨架。 [html] cd /usr/local/src/php-5.3.6/ext/ ./ext_skel --extname=laiwenhui cd /usr/local/src/php-5.3.6/ext/ ./ext_skel --extname=laiwenhui第二步:修...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn