扩展你的 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模板类代码
Sep 07 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
PHP 截取字符串专题集合
Aug 19 PHP
php 大数据量及海量数据处理算法总结
May 07 PHP
php 阴历-农历-转换类代码
Jan 16 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
php中实现精确设置session过期时间的方法
Jul 17 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
php中JSON的使用方法
Apr 30 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
PHP重定向与伪静态区别
Feb 19 PHP
tp5.1 框架路由操作-URL生成实例分析
May 26 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
使用Python的PEAK来适配协议的教程
2015/04/14 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
python实现图片转字符画
2021/02/19 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
优秀教师工作感言
2014/02/16 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
努力学习演讲稿
2014/05/10 职场文书
党员民主评议个人总结
2014/10/20 职场文书