扩展你的 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实现的MySQL数据浏览器
Mar 11 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 PHP
PHP中Http协议post请求参数
Nov 02 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 10 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 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
基于mysql的论坛(3)
2006/10/09 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
js的写法基础分析
2011/01/17 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
JavaScript中的this机制
2016/01/30 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python协程用法实例分析
2015/06/04 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
python操作mysql数据库
2017/03/05 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
拉丁舞学习者的自我评价
2013/10/27 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
信访工作者先进事迹
2014/01/17 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
演讲开场白和结束语
2015/05/29 职场文书
团结友爱主题班会
2015/08/13 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电