设为首页 收藏本站
查看: 493|回复: 0

[经验分享] C语言开发php扩展链接库初学

[复制链接]

尚未签到

发表于 2015-8-27 08:57:24 | 显示全部楼层 |阅读模式
  编程开发的多数应该都会点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下编译通过.
DSC0000.png
  下载http://files.cnblogs.com/logoove/yoby.rar
  (Yoby实践得来,网上相关教程很多)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104774-1-1.html 上篇帖子: windows下装memcached的php扩展->php_memcache 下篇帖子: PHP-PDO
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表