扩展你的 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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 PHP
laravel Model 执行事务的实现
Oct 10 PHP
PHP高并发和大流量解决方案整理
Dec 24 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
PHP开发框架总结收藏
2008/04/24 PHP
通俗易懂的php防注入代码
2010/04/07 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Apache如何部署django项目
2017/05/21 Python
Python中turtle作图示例
2017/11/15 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
自我推荐信范文
2014/05/09 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
2015年重阳节活动总结
2015/03/24 职场文书