ps做网站画布多大,武都区建设局网站,深圳商城手机网站建设,西安到北京高铁php 5.6版本中编写一个PHP扩展的简单示例这篇文章主要介绍了php 5.6版本中编写一个PHP扩展的简单示例,本文给出扩展实现代码、编译方法、配置方法和使用例子等内容,需要的朋友可以参考下有时候在php本身没有满足需求的api时候#xff0c;需要自己写相应的扩展#xff0c;扩展…php 5.6版本中编写一个PHP扩展的简单示例这篇文章主要介绍了php 5.6版本中编写一个PHP扩展的简单示例,本文给出扩展实现代码、编译方法、配置方法和使用例子等内容,需要的朋友可以参考下有时候在php本身没有满足需求的api时候需要自己写相应的扩展扩展写完之后进行编译即可加入自己的开发环境中扩展php的功能。这里实现一个连接字符串和int型数的连接操作的简单扩展。首先下载最新的php源码安装包进入ext/目录新建extstrcat.def代码如下:string extstrcat(string strarg, int intarg)随后运行代码如下:./ext_skel --extnameextstrcat --protoextstrcat.def修改ext/extstrcat/config.m4去掉如下行前面的注释(dnl):代码如下:PHP_ARG_ENABLE(extstrcat, whether to enable extstrcat support,Make sure that the comment is aligned:[ --enable-extstrcat Enable extstrcat support])此时来编辑ext/extstrcat/extstrcat.c找到PHP_FUNCTION(extstrcat)函数这里表示扩展中的方法名为extstrcat方法实现如下代码如下:PHP_FUNCTION(extstrcat){char *strarg NULL;int argc ZEND_NUM_ARGS();int strarg_len;long intarg;char intargstr[10];int retstrlen 0;char *retstr NULL;if (zend_parse_parameters(argc TSRMLS_CC, sl, strarg, strarg_len, intarg) FAILURE)return;snprintf(intargstr, 9, %d, intarg);retstrlen strarg_len strlen(intargstr) 1;retstr (char *)malloc(sizeof(char)* retstrlen);memset(retstr, \0, retstrlen);strncat(retstr, strarg, strlen(strarg));strncat(retstr, intargstr, strlen(intargstr));RETURN_STRING(retstr, 1);php_error(E_WARNING, extstract: not yet implemented);}其中strarg和intarg即为对应的两个字符串和整型参数。接下来要做的事情就是编译扩展代码如下:phpize./configure --enable-extstrcatmake编译成功之后在ext/modules目录下会生成extstrcat.so文件代码如下:cp ./modules/extstrcat.so /usr/local/lib/php/extensions/no-debug-non-zts-20121212/修改php.ini增加extension extstrcat.so。重启php-fpm运行phpinfo()可以看到新增了extstrcat扩展。现在来写一个Demo测试一下刚刚的php扩展代码如下:命令行下运行该文件得到testarg1234.