原文:http://www.orlion.ga/1090/

写一个最简单的将字符串全部变成大写的函数:

<?php
function my_toupper($str) {
return strtoupper($str);
} echo my_toupper('demo');
?>

现在我们开发一个php扩展,实现my_toupper的功能。

Step1:

PHP提供了一个扩展框架生成器:ext_skel,这个工具在php源码的ext目录(我的是/usr/local/src/php-5.6.17/ext/)下。首先我们在php源码的ext目录下创建一个orlion.skel文件,文件内容为:

string my_toupper(string str)

 这个文件就是要告诉ext_skel我们的扩展里有my_toupper这个函数,接下来执行:

./ext_skel --extname=orlion --proto=orlion.skel

aaarticlea/png;base64,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" alt="" />

这一步会在当前目录下创建一个文件夹orlion。目录结构这样的:

aaarticlea/png;base64,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" alt="" />

这时候这个扩展的框架就搭建好了。

Step2:

修改orlion目录下的config.m4,将这个文件第10、11、12行的dnl去掉:

就是将

aaarticlea/png;base64,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" alt="" />

改为:

aaarticlea/png;base64,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" alt="" />

Step3:

接下来就是要实现我们的功能了,打开orlion.c,然后找到函数PHP_FUNCTION(my_toupper),修改为如下:

aaarticlea/png;base64,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" alt="" />

然后编译扩展,依次运行:

$ /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make

Step4:

将扩展添加到php中,首先将我们扩展中的orlion/mudules/orlion.so拷贝到php的扩展目录:

aaarticlea/png;base64,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" alt="" />

然后修改配置php.ini在文件最后边加上"extension=orlion.so"然后重启php-fpm。

Step5:

写个test.php文件测试一下:

<?php
var_dump(my_toupper('abc'));
?>

运行一下可以看到输出了ABC,success!

PHP扩展开发入门的更多相关文章

  1. 【原创】PHP扩展开发入门

    PHP扩展开发入门 作者:wf (360电商技术组) 在我们编写自己的第一个php扩展之前,先了解一下php的总体架构和执行机制. php的架构如图1所看到的. 当中一个重要的就是SAPI(serve ...

  2. PHP7.1扩展开发入门

    第1步: 首先从官网下载了PHP源码http://am1.php.net/distributions/php-7.1.3.tar.bz2 第2步: 解压后可以看到根目录下面的ext文件夹里有ext_s ...

  3. 【原创】PHP扩展开发进阶

    PHP扩展开发进阶 ​作者:wf (360电商技术) 在第一期PHP扩展开发入门中,简单的介绍了PHP的总体架构和执行机制,并具体说明了怎样开发和编译一个主要的PHP扩展,最后在PHP 5.3的环境下 ...

  4. UWP开发入门(十)——通过继承来扩展ListView

    本篇之所以起这样一个名字,是因为重点并非如何自定义控件,不涉及创建CustomControl和UserControl使用的Template和XAML概念.而是通过继承的方法来扩展一个现有的类,在继承的 ...

  5. PHP扩展开发(1):入门

    有关PHP扩展开发的文章.博客已经很多了,比较经典的有: TIPI项目(http://www.php-internals.com/,强烈推荐) <Extending and Embedding ...

  6. PHP 扩展开发(将自己的一些代码封装成PHP扩展函数)

    今天时间不多,先给个地址,能搜到我这篇blog的朋友先看看我最近在看的一些文章.资料吧: 我的环境是 lnmp1.1 的 (LNMP一键安装包),所以要进行PHP扩展开发首先应该对环境配置和shell ...

  7. JavaWeb学习总结(一)——JavaWeb开发入门

    http://www.cnblogs.com/xdp-gacl/p/3729033.html 只为成功找方法,不为失败找借口! JavaWeb学习总结(一)--JavaWeb开发入门 一.基本概念 1 ...

  8. 基于Nodejs生态圈的TypeScript+React开发入门教程

    基于Nodejs生态圈的TypeScript+React开发入门教程   概述 本教程旨在为基于Nodejs npm生态圈的前端程序开发提供入门讲解. Nodejs是什么 Nodejs是一个高性能Ja ...

  9. Firefox扩展开发

    Firefox扩展开发 (插件开发) Extension开发 入门教程 5步走 五步走   首先需要知道什么是"Firefox插件".这里说的"插件"只是一个通 ...

随机推荐

  1. DB2 错误信息码

    000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 01568 动态SQL语句用分号结束 +1 ...

  2. 图解HTTPS

    看到一篇讲解HTTPS交互的文章,讲得很清楚,备忘一下 来自无网不剩的博客 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTP ...

  3. java和android及IOS对接RSA加密经验

    1.网上找的java生成RSA密钥对的例子,产生的字附串实际上是hax后和密钥串 你可以将他们当成静态字附串存在java代码里 2.android和java可以代码复用,IOS对接比较麻烦 3.IOS ...

  4. MySQL数据库“局部”乱码

    问题:“网页显示中午”与“数据库查看中文”总有一个是乱码,或者“网页中总有部分中文乱码” 装了PHPStudy之后,用alter修改过一次数据库的编码方式为utf8!当时的网页的编码显示是正常的,所以 ...

  5. oracle 11g install linux

    #!/bin/bash#Purpose:Create and config oracle install.#Usage:Log on as the superuser('root') #1.creat ...

  6. HK一行所见闻

    香港一行 20多年来,未未去过HK,前段时间由于工作关系去了趟HK.感触良多. 一清早,福田过关,做火车,做地铁,一通到了目的地. 总结对那边的印象: 1,所有人都是粤语,包括工作交流.而且他们不怎么 ...

  7. java HashMap那点事

    集合类的整体架构 比较重要的集合类图如下:   有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是(用二 ...

  8. ListView 加载更多列表 Load More mono forandroid 项目笔记

    今天项目经理找我说Listview加载更多的时候会出现一些问题,主要表现在会顿一下.让我我就去找Java的方法看看.自己写出了mono 的加载更多功能.和大家分享一下 先看效果 首先是模型类ListI ...

  9. 在Nifi 里 把 HDFS Json 为csv 格式

    import org.apache.commons.io.IOUtilsimport java.nio.charset.*import java.text.SimpleDateFormatimport ...

  10. centos install kafka and zookeeper

    1.安装zookeeper ZooKeeper is a distributed, open-source coordination service for distributed applicati ...