使用C++扩展PHP

字体大小: 中小 标准 ->行高大小: 标准
这里先书写一个模型,稍后会继续扩展,欢迎高手和我讨论,我的QQ:500685

config.m4 文件

dnl
dnl $ Id: $
dnl

dnl # PHP_ARG_ENABLE(test2,whether to enable test2 functions)
dnl # [ --enable-test2 Enable test2 support]

if test "$PHP_TEST2" != "no"; then

PHP_NEW_EXTENSION(test2,test2.cpp,$ext_shared)
PHP_SUBST(TEST2_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(test2, $TEST2_LIBDIR, TEST2_SHARED_LIBADD)
PHP_ADD_INCLUDE($TEST2_INCDIR)


fi

test2.cpp 文件

/*

Authors:tao feng

*/

#ifdef HAVA_CONFIG_H
#include "config.h"
#endif


#define PHP_TEST2_MODULE_VERSION "0.0.1"

#include <php.h>
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <pthread.h>
#include <stdlib.h>
//include head file

//if class use PHP_ME
static zend_function_entry test2_functions[] = {
PHP_FE(hellowword,NULL)
(NULL,NULL,NULL)
}



zend_module_entry test2_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
"test2",
NULL, //import zend_function_entry
PHP_MINIT(test2),
NULL, //PHP_MSHUTDOWN(test2),
NULL, //PHP_RINIT(test2),
NULL, //PHP_RSHUTDOWN(test2),
PHP_MINFO(test2),
PHP_TEST2_MODULE_VERSION,
STANDARD_MODULE_PROPERTIES
};

#ifdef COMPLIE_DL_TEST2
extern "C"{
ZEND_GET_MODULE(test2)
}
#endif

PHP_MINFO_FUNCTION(test2)
{
php_info_print_table_start();
{
php_info_print_table_row(2,"test module support","enabled");
php_info_print_table_row(2,"Extension version",PHP_TEST2_MODULE_VERSION);
}
php_info_print_table_end();
}

//PHP_METHOD(CLASS,FUNCTION)
PHP_FUNCTION(hello_world)
{
zend_printf("hello world");
}

/*
PHP_MSHUTDOWN_FUNCTION(test2)
{
return SUCCESS;
}

PHP_RINIT_FUNCTION(test2)
{
return SUCCESS;
}

PHP_RSHUTDOWN_FUNCTION(test)
{
return SUCCESS;
}
*/

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/29983.html