PHP沙龙 - PHPSalon.com - Justin's Blog - Sofee.cn

世界其实很简单,复杂的是人;生活其实很轻松,沉重的是感情!

用户操作
[即时聊天] [发私信] [加为好友]
吴文龙ID:ezdevelop
270863次访问,排名224好友0人,关注者2
ezdevelop的文章
原创 156 篇
翻译 0 篇
转载 37 篇
评论 819 篇
Justin的公告
-------------------------
点击进入我的新BLOG
-------------------------
作者声明:本人专栏内的所有文章,除注明转载外均为本人原创,未经许可,严禁任何形式转载。
最近评论
muchool:http://cvsproxy.muchool.com/ 专门针对软件开发人员量身定做的CVS代理下载,无需安装任何CVS客户端,轻松而快速的打包下载CVS版本控制服务器上的资源,自动剔除版本控制信息,还原开发者的原始项目目录.
csnxlsh:也发个给我咯
谢谢了!我的邮箱是csnxlsh@sohu.com
ryl:robots.txt只是对好的搜索引擎google ,baidu....等一些好的,才遵守的规则
对垃圾的搜索引擎还是没用啊
所以不用phpmyadmin管理才是主要
ryl:居然有这么活宝的人
怎么把phpmyadmin都传上去
还安全吗
gudai:我等得花儿也谢了。
文章分类
收藏
    相册
    My Photos
    .Personal
    Justin's Tech Blog(RSS)
    My Alumni
    My Website
    Friend's Blog
    PHP/MySQL经验点滴
    大麦英语学习论坛
    速推网
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 在Windows环境下进行PHP扩展的开发收藏

    新一篇: 从PHP源代码修改phpinfo中的LOGO及彩蛋 | 旧一篇: 重写了PHP扩展FreeImage的所有代码

    /*
    * 版权归PHPSalon.com所有,未经许可,严禁任何形式转载
    *
    * Author: Wenlong Wu
    */

    一、准备工作:

    1. 开发环境:要编译 PHP 你需要 Microsoft 开发环境。推荐使用 Microsoft Visuaul C++ 6.0,当然 Microsoft Visuaul C++.NET也可以。
    2. 其他工具:如果使用自动生成 PHP 扩展代码的话,还需要 Cygwin 运行环境,要安装bison、flex、awk等工具。
    3. PHP 源代码:可以从PHP官方网站下载最新发行版本的源代码的打包文件或者快照,当然也可以通过匿名 CVS 得到最新的开发版本,本文假定PHP源代码包存放在  d:\ezapp\php-4.3.7 目录下。
    4. 编译好开发PHP扩展时所需的文件,如php4ts.lib、php.exe等,当然也可从已编译好的包里拷贝一份。

    二、生成框架:

          PHP 源代码包里提供了一个自动生成 PHP 扩展的源代码框架,可以加快你的开发进度。
          进入命令行模式,执行如下命令(本文假定开发一个名为 myext 的扩展):
          cd d:\ezapp\php-4.3.7\ext
          ..\Release_TS\php-cli.exe ext_skel_win32.php --extname=myext
          执行完以上命令后,会在 ext 目录下自动建立一个名为 myext 的目录,里面的文件就是扩展的源代码的完整框架,现在就可以编译该扩展了。
          msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS"
          编译完成后,会在 d:\ezapp\php-4.3.7\Release_TS 目录下生成一个 myext.dll 文件。拷贝这个文件到你的PHP目录下了(如:c:\php\extension),并在 php.ini 中加入 extension=myext.dll ,然后重起WEB服务器,现在打开浏览器输入
    http://localhost/myext.php 浏览一下结果(假定已将myext.php 文件拷到WEB根目录下)。
          该扩展目前仅包含一个名 confirm_extname_compiled 函数。

    三、加入自己的代码:

          这里以加入一个带参数的 hello 函数,操作步骤如下:

    1. 打开 php_myext.h 文件,增加一条申明语句,如图一所示:
      图一
      (图一)
    2. 打开 myext.c 文件,加入自定义的 hello 函数,如图二、三所示:
      图二
      (图二)

      图三
      (图三)
    3. 重新编译 myext
      msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS"
    4. 拷贝 myext.dll 文件到你的PHP扩展目录下(如:c:\php\extension),并重起WEB服务器。
    5. 新建一个 hello.php 文件,内容如下,并打开浏览器运行
      <?php
      hello("EZ Development Team");
      ?>

      屏幕上将会输出:Hello EZ Development Team

    四、后记

          本文仅是一篇入门级文章,旨在带你进入 PHP 扩展开发的行列,本人也将陆续写些高级开发的文章,敬请期待。

    发表于 @ 2004年06月28日 20:37:00|评论(loading...)|编辑

    新一篇: 从PHP源代码修改phpinfo中的LOGO及彩蛋 | 旧一篇: 重写了PHP扩展FreeImage的所有代码

    评论

    #ray428 发表于2004-07-05 10:43:00  IP: 218.80.215.*
    Linux下的扩展我也做过了,就是不能调用静态库,郁闷!
    #tim 发表于2005-06-24 10:21:00  IP: 61.186.252.*
    你好,有几个问题问一下
    1、文中提到的生成框架时,是不是直接在windows的命令行中执行
    2、为什么我在执行..\Release_TS\php-cli.exe ext_skel_win32.php --extname=myext时提示找不到路径(我在源码包中也没找到release_ts\php-cli.exe)
    3、不懂C++,msdev是c++的编译命令?
    4、cygwin在哪一步用到?如何使用?
    谢谢指教!
    #gu1dai 发表于2006-11-08 14:00:00  IP: 124.243.200.*
    q:文中提到的生成框架时,是不是直接在windows的命令行中执行
    a: 是
    q:为什么我在执行..\Release_TS\php-cli.exe ext_skel_win32.php --extname=myext时提示找不到路径(我在源码包中也没找到release_ts\php-cli.exe)
    a:你需要到php的编译好的目录找到php.exe替代php-cli.exe

    q:不懂C++,msdev是c++的编译命令?
    a:是的,装了vc++6.0就有了这个命令。

    q:cygwin在哪一步用到?如何使用?
    a:在第一步使用ext_skel_win32.php的时候,ext_skel_win32.php 会调用sh环境,所以你需要cygwin.

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Justin