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实践得来,网上相关教程很多)

posted @ 2012-06-12 21:51  Yoby  阅读(3685)  评论(2编辑  收藏  举报