zoukankan      html  css  js  c++  java
  • C语言开发php扩展链接库初学

        编程开发的多数应该都会点c语言,那么我们就来用c语言开发php扩展功能.虽然php功能库很多,但是在本地开发,如果能够扩展系统自带函数,这样方便不少,我们都知道从系统扩展dll,是可以直接使用的,linux系统时so扩展.本文以windows 7为例.我查看了多数教程,经过自己实践,发现需要这几个工具,下边我就说说怎么配置一个c语言开发php的dll扩展插件,至于怎么配置这些插件,我想你只要会配置php环境的都会,就是在php.ini文件的扩展处添加类似extension=php_yoby.dll单独成行,这样重启服务器就可以直接使用你的函数.

        但是上边方法写的扩展需要加载到服务器,所以一般主要写一些测试函数,正式上线注释掉这些代码.还有一种方法就是用php写出同样功能函数,在上线时候加载进去,不过有些多余,我觉得写测试功能函数比较好,使用方便,多数项目都需要测试,当然有特殊php不能完成的功能可以用c语言来完成,这里只是说说怎么写一个helloworld简单例子.首先我们需要下载和你php版本相通的源码包,官方可以找到.解压源码把ext文件夹解压到php安装目录相同文件夹.其次我们把php安装路径添加到系统环境变量,这个配置php一般都会添加.这样我们就可以在cmd下面进入到ext文件夹,运行php ext_skel_win32.php --extname=mytest命令,这里mytest就是我们需要插件.回车后就会在ext下面出现文件夹mytest,这就是一个扩展建立好了,差点忘记了,这里需要装一个MSYS,简单说下,他是一个linux在windows下面模拟环境,绿色的解压到c盘下,把这个文件夹里面的bin添加到系统变量,在php的ext目录找到ext_skel_win32.php文件,打开找到$cygwin_path = 'C:\MSYS\bin';这一行,改成你的msys路径,这样就可以正确建立php扩展了.

        上边建立好了一个例子,需要编译成dll文件还要装VC++6.0,网上绿色版本就可以用,把msdev.exe添加到系统变量后边在dos模拟环境下编译用.不会添加环境变量可以跳过了.用dos进入到ext目录,输入msdev myhello\myhello.dsp /MAKE "myhello - Win32 Release_TS" 进行编译,编译后在php安装目录的Release_TS文件夹就有dll文件了,特别注意,在ext的mytest的Release_TS目录不会有,网上很多教程都说有,但是我发现并不在这里,难道我配置不一样吗?我没有配置过vc++环境的.这样就编译通过了.至于ext里面mytest文件夹,打开会发现很多生成文件,里面c扩展名就是源文件,相关几个是工程和头文件.php5ts.lib这个也需要从php安装目录dev文件夹复制,没有的看源码包会有.

    以后会写相关开发过程代码,yoby也是来重学c语言.

    附件就是一个源码,可以在vc下编译通过.

    下载https://files.cnblogs.com/logoove/yoby.rar

    (Yoby实践得来,网上相关教程很多)

  • 相关阅读:
    1114: 零起点学算法21——求平均值
    1113: 零起点学算法20——输出特殊值II
    1112: 零起点学算法19——输出特殊值
    1111: 零起点学算法18——3个数比较大小
    1110: 零起点学算法17——比较2个数大小
    1109: 零起点学算法16——鸡兔同笼
    1108: 零起点学算法15——交换变量
    1107: 零起点学算法14——三位数反转
    1106: 零起点学算法13——求2个时间之间的分钟数
    设计模式之—中介者模式<Mediator Pattern>
  • 原文地址:https://www.cnblogs.com/logoove/p/2546887.html
Copyright © 2011-2022 走看看