扩展你的 PHP 之入门篇


Posted in PHP onDecember 04, 2006

扩展你的php

  1. 扩展你的php
  2. 扩展的3种方式
  3. extension dll方式的扩展
  4. 小结

首先注意,以下所有的一切皆在 win 下进行,使用的工具的 VC++6.0。

扩展你的PHP

PHP以方便快速的风格迅速在web系统开发中占有了重要地位. PHP本身提供了丰富的大量的函数及功能. 长话短说. 我们看看我们如何进行扩展.

扩展的3种方式

  • External Modules
  • Built-in Modules
  • The Zend Engine

3 种方式的优缺点可参见 PHP 手册:http://www.php.net/manual/en/zend.possibilities.php

extension dll

1、首先我们去下个 php 的 source. 可以看到有以下几个重要的目录。ext,main,TSRM,Zend,另外我们可能还需要 bindlib_w32(需要你从 cvs 上下),及 PHP 目录下的 php4ts.lib。

2、打开 VC,新建一个 Win32 Dynamic-Link Library,如下图:

扩展你的 PHP 之入门篇

3、点 ok,选择“An Empty Dll Project”,点击完成。

4、设置 Build 的 Active Configuration,选 Release:)

扩展你的 PHP 之入门篇

5、Project->settings

扩展你的 PHP 之入门篇

预定义标识. 整个如下:

ZEND_DEBUG=0, COMPILE_DL_BINZY, ZTS=1, ZEND_WIN32, PHP_WIN32, HAVE_BINZY=1

扩展你的 PHP 之入门篇

这个是包含路径,上面所提及的几个路径都可以加入。

扩展你的 PHP 之入门篇

选择 Multithreaded DLL。

扩展你的 PHP 之入门篇

取名时随便的,要 link php4ts.lib~~ 扩展你的 PHP 之入门篇 
o,忘了,别忘了加上 /Tc 的参数:

扩展你的 PHP 之入门篇

6、写代码.

建个头,建个身体。
Binzy.h

// Binzy Wu
// 2004-4-9
// PHP Extension

#if HAVE_BINZY
extern zend_module_entry binzy_module_entry;
#define binzy_module_ptr &binzy_module_entry

PHP_FUNCTION(hellobinzy); //
PHP_MINFO_FUNCTION(binzy);
//
#endif

Binzy.c

// Binzy Wu
// 2004-4-9
// PHP Extension

#include "php.h"
#include "Binzy.h"

#if HAVE_BINZY

#if COMPILE_DL_BINZY
ZEND_GET_MODULE(binzy)
#endif

function_entry binzy_functions[] = {
    
PHP_FE(hellobinzy, NULL
)
    {
NULL, NULL, NULL
}
};

zend_module_entry binzy_module_entry = {
    
STANDARD_MODULE_HEADER
,
    
"binzy", binzy_functions, NULL, NULL, NULL, NULL, PHP_MINFO(binzy), NO_VERSION_YET,
STANDARD_MODULE_PROPERTIES
};

PHP_MINFO_FUNCTION(binzy)
{
    
php_info_print_table_start
();
    
php_info_print_table_row(2, "Binzy Extension", "Enable"
);
    
php_info_print_table_end
();
}

PHP_FUNCTION(hellobinzy)
{
    
zend_printf("Hello Binzy"
);
}

#endif

7、编译,修改 php.ini,restart apache,写个 php

<?php
    hellobinzy
();
?>

hoho~~~

扩展你的 PHP 之入门篇

phpinfo();

扩展你的 PHP 之入门篇

小结

这算入门篇, 以后再一步步来~~. 慢慢深入, 有些我也不了解的。 偶是初学者。

PHP 相关文章推荐
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
解析PHP中empty is_null和isset的测试
Jun 29 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
简单实用的网站PHP缓存类实例
Jul 18 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
php使用curl打开https网站的方法
Jun 17 PHP
关于php中一些字符串总结
May 05 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 PHP
功能强大的php文件上传类
Aug 29 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
用 PHP5 轻松解析 XML
Dec 04 #PHP
PHP 已经成熟
Dec 04 #PHP
PHP 选项及相关信息函数库
Dec 04 #PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 #PHP
windows xp下安装pear
Dec 02 #PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 #PHP
php字符串截取问题
Nov 28 #PHP
You might like
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
Vue router安装及使用方法解析
2020/12/02 Vue.js
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
区分python中的进程与线程
2020/08/13 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
教师党员公开承诺书
2014/03/25 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
工伤私了协议书范本
2014/11/24 职场文书
见习期个人总结
2015/03/05 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
高一军训感想
2015/08/07 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python