扩展你的 PHP 之入门篇_php技巧

扩展你的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”,点击完成。

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

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

<?php
    hellobinzy();
?>

hoho~~~

phpinfo();

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

时间: 2024-07-30 20:09:36

扩展你的 PHP 之入门篇_php技巧的相关文章

扩展你的PHP之入门篇

1. 扩展你的php2. 扩展的3种方式3. extension dll方式的扩展4. 小结 首先注意, 以下所有的一切皆在win下进行, 使用的工具的vc++6.0.扩展你的PHPPHP以方便快速的风格迅速在web系统开发中占有了重要地位. PHP本身提供了丰富的大量的函数及功能. 长话短说. 我们看看我们如何进行扩展. 扩展的3种方式External ModulesBuilt-in ModulesThe Zend Engine3种方式的优缺点可参见PHP手册.http://www.php.n

vue2.0开发实践总结之入门篇_javascript技巧

vue2.0 据说也出了很久了,博主终于操了一次实刀. 整体项目采用  vue +  vue-router +  vuex (传说中的vue 全家桶),构建工具使用尤大大推出的vue-cli 项目是图片分享社交平台.   项目预览:   1 .vue-cli构建工具必知 我选用的vue-cli 是基于webpack的版本 ,不了解webpack的可以先粗略看下下面的基本知识 webpack 基本知识点: entry:入口点,webpack会从入口点设置的js文件开始对项目进行构建,过程中,所有入

简单的前端js+ajax 购物车框架(入门篇)_javascript技巧

今天在公司实在没有事做,突然就想到写下商城的购物车的前端框架,当然我这里只有购物车的增删改查,也许写的并不是那么完善,但最重要的是一个入门,也希望js达人给些建议,好让我更上一个台阶. HOHO~~~开始咯: Js: 复制代码 代码如下: //为了省事,就没写自己的js ajax了 用了jquery的,当然你也可以添加到jquery的扩展方法内,哈哈,我太懒了,所以就写这里了. var _$ = { AJAX: function (urlparm, d, beforecall, successc

PHP 字符串操作入门教程_php技巧

无论哪种语言,字符串操作都是一个重要的基础,往往是简单而重要.正像人说话一样,一般有形体(图形界面),有语言(print 字符串?),显然字符串能解释更多的东西.PHP提供了大量的字符串操作函数,功能强大,使用也比较简单,详细请参看 http://cn2.php.net/manual/zh/ref.strings.php . 以下将简单的讲述它的功能和特性.   弱类型  PHP是弱类型语言,所以其它类型的数据一般可以直接应用于字符串操作函数里,而自动转换成字符串类型,进行处理,如:  echo

php安装ssh2扩展的方法【Linux平台】_php技巧

本文实例讲述了php安装ssh2扩展的方法.分享给大家供大家参考,具体如下: wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz tar -zxvf libssh2-1.4.2.tar.gz cd libssh2-1.4.2 ./configure --prefix=/usr/local/libssh2 make && make install wget http://pecl.php.net/get/ssh2-0.12.tg

PHP编程基本语法快速入门手册_php技巧

php脚本的后面名为.php,代码放置在下面的括号里面: <?php ....... ?> echo可以打印信息,类似于printf. <?php echo "hallo world"; ?> 每条语句后面用分号结尾;. php支持三种注释方式: <?php // 第一种 # 第二种 /* 这是 多行 注释 */ ?> 在php中,函数.类.和关键词的大小写都是同一个东西: <!DOCTYPE html> <html> <

配置eAccelerator和XCache扩展来加速PHP程序的执行_php技巧

eaccelerator安装配置PHP加速eAccelerator简介 eAccelerator是一个的免费.开源的PHP模块,它能够为提供PHP加速.优化.加码.和动态内容缓存功能.它通过存储PHP脚本编译后的状态而加快执行PHP脚本的速度,而不需要频繁的编译这个PHP脚本.而且它能优化PHP脚本,以提高执行PHP的速度.eAccelerator特色是减少了服务器负载.使PHP脚本加速1-10倍. 下载地址:http://sourceforge.net/projects/eaccelerato

phpmyadmin显示utf8_general_ci中文乱码的问题终级篇_php技巧

自己写PHP也有一年多了,然后编码问题却老是没有得到好的解决,自己的情况是这样的, 网页显示完全正常,在phpmyadmin数据库显示中文乱码,不管是简体还是繁体,只要是中文都是如下显示形式:梧州æ--游 然而自己编写的网页中却显示完全正常,不管是繁体,还是简体,都不会乱码情况. 当然我的网页是保存为utf-8格式的,再加上我读库操作时加上了mysql_query("set names 'utf-8'");的语句,所以在网页中看到的是完全正常,当然只有在phpmyadmin

PHP中获取文件扩展名的N种方法小结_php技巧

第1种方法: 复制代码 代码如下: function get_extension($file) { substr(strrchr($file, '.'), 1); } 第2种方法: 复制代码 代码如下: function get_extension($file) { return substr($file, strrpos($file, '.')+1); } 第3种方法: 复制代码 代码如下: function get_extension($file) { return end(explode(