|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
培训的第二阶段,开始了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, 以下图
3. 点ok, 选择'An Empty Dll Project', and click finish.
4. 设置Build的Active Configuration. 选Release:)
5. Project->settings.
预界说标识. 全部以下.ZEND_DEBUG=0,COMPILE_DL_BINZY,ZTS=1,ZEND_WIN32,PHP_WIN32,HAVE_BINZY=1
这个是包括途径,下面所说起的几个途径都可以到场.
选择Multithreaded DLL,
取名时随意的, 要link php4ts.lib~~ :)
o, 忘了, 别忘了加上 /Tc的参数.
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
6. 编译...修正php.ini, restart apache, 写个php
<?
hellobinzy();
?>
hoho~~~
phpinfo();
小结
这算入门篇, 今后再一步步来~~. 渐渐深切, 有些我也不懂得的。 偶是初学者。
Binzy Wu
有任何疑问请到会商区列入本文章相干会商:http://club.phpe.net/index.php?act=ST&f=15&t=4809 在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。 |
|