windows下开发PHP扩展(无需Cygwin)

第一步:准备

1、php源码包和windows下的二进制包,以及安装Visual C++,并把Microsoft Visual Studio/Common/MSDev98/Bin的绝对路径添加到windows环境变量

2、解压源码包到d:/php_src

3、进入d:/php_src/ext目录,复制skeleton文件夹,并重命名为要开发扩展的名字,本例为“linvo”

4、把二进制包中dev目录下的php5ts.lib文件,拷入新建的linvo目录

5、编辑linvo目录中的php_skeleton.h、skeleton.c、skeleton.dsp这三个文件,替换内容中所有extname为linvo,EXTNAME为LINVO。(严格区分大小写)

第二步:编码

6、编辑php_skeleton.h文件(头文件)

在PHP_FUNCTION(confirm_linvo_compiled);下面编写

PHP_FUNCTION(hello);

声明一个hello函数

7、编辑skeleton.c文件(主文件)

在PHP_FE(confirm_linvo_compiled, NULL) 下面编写

PHP_FE(hello, NULL)

这是函数入口,下面该写函数主体了

找到PHP_FUNCTION(confirm_test_compiled)函数,该函数是测试函数,在该函数后面新写一个函数

PHP_FUNCTION(hello)

{

char *arg = NULL;

int arg_len, len;

char *strg;

/* 接收参数 */

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {

return;

}

len = spprintf(&strg, 0, "Hello,%s", arg);

RETURN_STRINGL(strg, len, 0);

}

第三步:编译

8、运行cmd命令行,进入d:/php_src/ext/linvo目录

9、输入 msdev linvo.dsp /MAKE "linvo - Win32 Release_TS"

10、如果没有错误,则在php_src目录下会生成一个Release_TS文件夹,里面就是编译好的php_linvo.dll扩展

第四步:使用

11、将其拷入运行环境中的php扩展目录ext

12、编辑php.ini添加extension=php_linvo.dll,重启apache

13、在php文件中执行如下语句

echo hello(‘Linvo‘);

将输出

Hello,Linvo

14、通过echo phpinfo();也可看到扩展已加载的信息

linvo

linvo support enabled

原文地址:http://blog.csdn.net/linvo/article/details/4086909

时间: 2024-10-20 22:59:57

windows下开发PHP扩展(无需Cygwin)的相关文章

gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)

cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从boost库的划分中可以看出来端倪,cygwin下的gcc和linux下的gcc完全使用的是相同的Toolsets.所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwin/gcc做的东西(不用win32的)可以无缝的用在linux下,没有任何问题.是在windows下开发

Windows下安装PHP扩展及资源下载地址(memcached为例)

官方下载的php安装包ext目录里以经包含了常用的php扩展,但某些情况下并不能满足我们项目需求,比如memcache扩展就不在官方的php安装包里.这时就需要我们自己去下载安装. 本文列出php官方提供的php扩展下载地址.同时给出windows下安装php扩展的步骤(以安装memcache扩展为例说明). 假设在windows上已经安装好memcached服务器,启动memcached服务的方法是:可在网上直接下载memcached.exe可执行文件,然后在cmd中找到该文件,使用命令  m

windows下开发服务器 位对齐问题

windows下开发服务器 位对齐问题 问题描述: 我在开发手机客服端大厅时,发送一个字节长度为奇数(2N-1)的数据,服务器是老是拒绝数据,长度不对,而远行PC端大厅,断点调试发现同样的数据却是偶数(2N)? 解决办法: windows默认是 #pragma pack(8) 我们开发可能看到是#pragma pack(1),把服务器改成#pragma pack(1) 版权声明:本文为博主原创文章,未经博主允许不得转载.

windows下安装phpredis扩展

windows下安装phpredis扩展 根据phpyinfo获取自己的php信息 x86,php5.6,TS,VC11 在pecl网站上找到对应的版本 5.6 Thread Safe (TS) x86 https://pecl.php.net/package/redis/ 把压缩包中东西解压缩至自己php文件夹下的ext文件夹 我这里是 E:\PHPWAMP_IN2\phpwamp\server\PHP-5.6.14\ext 重启服务 打开phpinfo 安装成功 原文地址:https://w

Python在Windows下开发环境配置汇总

最近比较关注学习Python方面的资料和课程,由于Python本身基本都是在Linux下开发,本人windows用习惯了初用Linux各种别扭啊. 下面将我在配置Windows环境下的禁言写出来,与大家分享. 1.下载与安装Python 1.Python官方网址:https://www.python.org 2.点击DownLoad后选择适合自己的版本进行下载. 3.下载完成后,直接安装包安装一路Next. 4.然后配置环境变量,为计算机添加安装目录搭到环境变量,如图把python的安装目录添加

Python科学计算(二)windows下开发环境搭建(当用pip安装出现Unable to find vcvarsall.bat)

用于科学计算Python语言真的是amazing! 方法一:直接安装集成好的软件 刚开始使用numpy.scipy这些模块的时候,图个方便直接使用了一个叫做Enthought的软件.Enthought是一家位于美国得克萨斯州首府奥斯汀的软件公司,主要使用Python从事科学计算工具的开发.Enthought里面包含了很多库,不需要你自己安装就可以直接使用了. 其实还又很多Python科学计算的集成软件,比如Python(x, y)和WinPython,个人感觉WinPython还是不错的,里面包

linux和windows下添加php扩展方法

本次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译,所以对现在运行的php没有任何影响. 假如原先编译的php目录在/usr/local/php目录下;apache在/usr/local/apache2目录下:php源代码在/usr/local/src/php-5.2.14目录下.如果实际目录与假定的目录不一致,则在下面的命令中做调整. 1. 找到当前运行的php版本的源代码目录,如 php-5.2.14.进入curl扩展库目录.$

Windows下PHP多线程扩展pthreads的安装

pthreads扩展安装步骤 1.查看phpinfo() 获取PHP版本号及位数(x86表示32位,x64表示64位).编译器版本.PHP配置文件加载所在位置等.如下图所示: 2.pthreads扩展下载地址:http://windows.php.net/downloads/pecl/releases/pthreads/ 3.在扩展列表中找到对应版本 4.php_pthreads-2.0.9-5.5-ts-vc11-x86.zip参数详解 2.0.9代表pthreads的版本号 5.5代表php

windows下安装imagick扩展(转)

最近项目中需要用到图片的一些特殊处理——比如:根据用户请求生成任意尺寸的图像.经过一些资料的查找,最终选用了php_imagick.利用 ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小.旋转.锐化.减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存.本节我们就来介绍一下如何在 windows下安装php_imagick拓展. 1. 下载 Download ImageMagick #下载页面: http://www.image