您的位置:首页 > 编程语言 > PHP开发

编写第一个PHP扩展,实现创建a链接

2017-10-14 00:00 399 查看
摘要: liunx 环境下熟悉扩展开发骨架

环境:

ubuntu系统

PHP7.0(apt-get install php7.0 php7.0-dev -y)

下载PHP7.0源码包

wget http://fi2.php.net/distributions/php-7.0.24.tar.gz tar -zxvf php-7.0.24.tar.gz
cd php-7.0.24/ext/

新建PHP扩展函数原型

vim create_href.proto
string create_href(string str)

创建骨架,会生成create_href目录

./ext_skel --extname=create_href --proto=create_href.proto

进入目录,修改配置文件,和c文件

cd create_href
vim config.m4
去掉下面三行的dnl
PHP_ARG_WITH(create_href, for create_href support,
Make sure that the comment is aligned:
[  --with-create_href             Include create_href support])

vim create_href.c
修改PHP_FUNCTION(create_href)为下面的样子:
PHP_FUNCTION(create_href)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
size_t str_len;

if (zend_parse_parameters(argc, "s", &str, &str_len) == FAILURE)
return;
zend_string *strg;        strg = strpprintf(0, "<a href=\"%.78s\"> %.78s </a>", str, str);
RETURN_STR(strg);
}

编译扩展,会在modules文件夹生成create_href.so

phpize
./configure --with-php-config=/usr/bin/php-config7.0
make && make test

安装create_href.so扩展,修改php.ini,重启php7.0-fpm服务

sudo make install

sudo vim /etc/php/7.0/cli/php.ini
添加 extension=create_href.so

sudo service php7.0-fpm restart

编辑文件测试扩展是否有效

vim create_href.php
<?php
echo create_href('www.baidu.com');

php create_href.php

<a href="www.baidu.com"> www.baidu.com </a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP扩展