zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【Leetcode】【hard】Binary Tree Postorder Traversal
    【Leetcode】【Easy】Contains Duplicate
    【Leetcode】【Easy】Isomorphic Strings
    【Leetcode】【Medium】Simplify Path
    【Leetcode】【Medium】Add Two Numbers
    【Leetcode】【Hard】Copy List with Random Pointer
    安装torch-opencv
    【转】ubuntu下修改文件夹权限
    Lua 中的 function、closure、upvalue
    多目标跟踪方法 NOMT 学习与总结
  • 原文地址:https://www.cnblogs.com/findumars/p/4993547.html
Copyright © 2011-2022 走看看