ITKeyword,专注技术干货聚合推荐

注册 | 登录

PHP扩展开发—LINUX环境

anda0109 分享于 2016-08-04

推荐:PHP扩展开发—windows开发环境搭建

环境及资源下载 操作系统:windows7,64位操作系统 IDE:Visual stdio 2013 PHP源码:php-5.5.38-src.zip PHP-SDK:http://windows.php.net/downloads/php-sdk/p

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1053

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

LINUX环境下开发PHP扩展的步骤如下: 1、下载PHP源码,解压,我的解压目录是:/root/lamp/php-5.5.37 2、cd到/root/lamp/php-5.5.37/ext目录下,创建文件test_extension.def文件 int a(int x, int y)string b(string str, int n) 3、通过扩展框架生成器生成框架目录: ext_skel –extname=test_extension –proto=test_extension.def 生成成功结果如下: Creating directory test_extensionawk: /root/lamp/php-5.5.37/ext/skeleton/create_stubs:56: warning: escape sequence `\|' treated as plain `|'Creating basic files: config.m4 config.w32 .svnignore test_extension.c php_test_extension.h CREDITS EXPERIMENTAL tests/001.phpt test_extension.php [done].To use your new extension, you will have to execute the following steps:1.

$ cd ..2.

$ vi ext/test_extension/config.m43.

$ ./buildconf4.

$ ./configure --[with|enable]-test_extension5.

$ make6.

$ ./sapi/cli/php -f ext/test_extension/test_extension.php7.

$ vi ext/test_extension/test_extension.c8.

$ makeRepeat steps 3-6 until you are satisfied with ext/test_extension/config.m4 andstep 6 confirms that your module is compiled into PHP. Then, start writingcode and repeat the last two steps as often as necessary. 4、切换到生成的框架目录下:cd test_extension 5、修改配置文件config.m4,去掉10、11、12行前面的dnl,如下 PHP_ARG_WITH(test_extension, for test_extension support,Make sure that the comment is aligned:[

--with-test_extension Include test_extension support]) 6、实现函数a和b的功能,vi test_extension.c,修改后函数a、b如下 PHP_FUNCTION(a){

推荐:PHP 扩展开发笔记一

为了方便,新建了一个bat。以后就按照这个来了。准备工作:下载适合版本的php源码。 1、设置 VC环境变量,为调用vc编译器做准备 2、设置path。 3、配置并构建。

int argc = ZEND_NUM_ARGS();

long x;

long y;

if (zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE)

{

php_error(E_WARNING, "zend_parse_parameters failure!");

return;

}

RETURN_LONG(x + y);}PHP_FUNCTION(b){

char *str = NULL;

int argc = ZEND_NUM_ARGS();

int str_len;

long n;

char *result;

char *ptr;

int result_length;

if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)

{

php_error(E_WARNING, "zend_parse_parameters failure!");

return;

}

result_length = str_len * n;

result = (char *) emalloc(result_length + 1);

ptr = result;

while (n--) {

memcpy(ptr, str, str_len);

ptr += str_len;

}

*ptr = '/0';

RETURN_STRINGL(result, result_length, 0);} 7、test_extension目录下执行:/usr/local/bin/phpize Configuring for:PHP Api Version:

20121113Zend Module Api No:

20121212Zend Extension Api No:

220121212 8、配置:./configure –with-php-config=/usr/local/bin/php-config 9、编译:make 10、安装:make install 安装完成后/usr/local/lib/php/extensions/no-debug-zts-20121212/下会生成test_extension.so 11、修改php.in,加上:extension=test_extension.so

推荐:PHP扩展开发-01-前期准备

     闲话不和大家撤了,如果您想学习php的扩展开发,相信您对php基础知识已经有了一定的了解。PHP扩展时用C语言编写的,如果您还不知道C语言 里面指针式什么东

LINUX环境下开发PHP扩展的步骤如下: 1、下载PHP源码,解压,我的解压目录是:/root/lamp/php-5.5.37 2、cd到/root/lamp/php-5.5.37/ext目录下,创建文件test_extension.def文件 int a(int x, i

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。