1、在php源码途径的ext文件夹下,新建一个extend_test.def文件,编辑文件内容为:
string my_test_function(string str,int n)
2、在当前目次实行
./ext_skel --extname=extend_test --proto=extend_test.def
个中,extname是扩大的名,proto是刚建立的文件,也能够用全途径
3、在当前目次下会生成extend_test文件夹,编辑extend_test文件夹下的config.m4
去掉一下三行的dnl的解释
PHP_ARG_ENABLE(extend_test, whether to enable extend_test support, Make sure that the comment is aligned: [ --enable-extend_test Enable extend_test support])
4、编辑extend_test文件夹下的extend_test.c文件
找到以下要领并修正
PHP_FUNCTION(my_test_function) { char *str = NULL; int argc = ZEND_NUM_ARGS(); size_t str_len; zend_long n; char *result; char *ptr; zend_long result_length; if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == 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); }
5、生成扩大:
在extend_test文件夹下,运转/home/php/bin/phpize(现实为phpize地点途径)
然后运转./configure --with-php-config=/home/php/bin/php-config(现实为php-config地点途径)
6、编译装置
make make install
7、实行完后会显现扩大装置到了哪一个途径下
然后修正php.ini增添扩大信息
extension=extend_test.so
8、测试扩大是不是可用
新建test.php文件并将内容编辑为
<?php echo my_test_function('a',5);
保留后用php运转,显现出aaaaa示意扩大胜利装置
相干视频教程引荐:《PHP教程》
以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!
以上就是php中怎样运用C言语写扩大的细致内容,更多请关注ki4网别的相干文章!