詳解Window7 下開發(fā)php擴(kuò)展
一、首先查看phpinfo() 信息
PHP Version 5.4.34
Zend Extension Build API220100525,TS,VC9
PHP Extension Build API20100525,TS,VC9
Thread Safety enable
線程安全,VC9編譯,5.4.34版本
二、開發(fā)前準(zhǔn)備工作
php 5.3-5.4 :Visual C++ 9.0(Visual Studio 2008)
安裝Cygwin(下載地址:http://www.cygwin.com/),虛擬linux環(huán)境
php編譯后的程序和編譯前的源碼(下載地址:http://windows.php.net/download/)
編譯后的程序路徑:php-5.4.45-Win32-VC9-x86\
編譯前的源碼路徑:php-5.4.45-src\
下載php sdk文件,http://windows.php.net/downloads/php-sdk/
1、解壓php-sdk-binary-tools-20110915.zip里面的文件,將bison.exe所在的bin目錄添加的系統(tǒng)path中
將php-5.4.45-Win32-VC9-x86\dev\php5ts.lib 復(fù)制到php-5.4.45-src\Release_TS\php5ts.lib
新建php-5.4.45-src\main\config.win32.h,內(nèi)容如下:
#define SIZEOF_LONG 4
#define PHP_COMPILER_ID "VC9"
"VC9"對(duì)應(yīng)VC9
2、找到php源碼目錄, php-5.4.45-src\ext\ext_skel_win32.php
/* This script can be used on Win systems ) Make sure you have CygWin installed ) Adjust the $cygwin_path to match your installation ) Change the environment cariable PATHEXT to include .PHP ) run ext_skel --extname=... the first time you run this script you will be asked to associate it with a program. chooses the CLI version of php. */ $cygwin_path = 'D:\Program Files\cygwin\bin';
這里改成你的cygwin安裝目錄。
3、運(yùn)行cmd,進(jìn)入php源碼目錄, php-5.4.45-src\ext,運(yùn)行命令php ext_skel_win32.php --extname=myphpexs

記得將php.exe 所在目錄加入path,--extname=你的擴(kuò)展名字,
若成功會(huì)再ext目錄下生成myphpexs文件夾,內(nèi)容如下

4、用vs2008 打開myphpexs.dsp, 解決方案配置改為Release,執(zhí)行生成命令
順利的話將生成php_myphpexs.dll文件,我的將php_myphpexs.dll生成再了php源碼根目錄的Release_TS文件夾中
5、將php_myphpexs.dll放到你php的擴(kuò)展目錄,再php.ini中加上extension=php_myphpexs.dll
6、新建php腳本文件test.php,內(nèi)容如下
echo confirm_myphpexs_compiled('test');
7、運(yùn)行測(cè)試文件,出現(xiàn)如下內(nèi)容說(shuō)明,成功了
Congratulations! You have successfully modified ext/myphpext/config.m4. Module 23 is now compiled into PHP.
8、confirm_myphpexs_compiled是建立擴(kuò)展是自帶的冊(cè)數(shù)函數(shù),在編輯你自己的擴(kuò)展內(nèi)容時(shí),可以刪除改函數(shù)
- PHP擴(kuò)展開發(fā)教程(總結(jié))
- PHP擴(kuò)展開發(fā)入門教程
- PHP內(nèi)核介紹及擴(kuò)展開發(fā)指南—基礎(chǔ)知識(shí)
- 初步介紹PHP擴(kuò)展開發(fā)經(jīng)驗(yàn)分享
- PHP7擴(kuò)展開發(fā)教程之Hello World實(shí)現(xiàn)方法示例
- PHP7擴(kuò)展開發(fā)之基于函數(shù)方式使用lib庫(kù)的方法詳解
- PHP7擴(kuò)展開發(fā)之hello word實(shí)現(xiàn)方法詳解
- 快速開發(fā)一個(gè)PHP擴(kuò)展圖文教程
- 一個(gè)簡(jiǎn)單php擴(kuò)展介紹與開發(fā)教程
- 關(guān)于嘗試開發(fā)PHP的MYSQL擴(kuò)展的使用
- windows下開發(fā)并編譯PHP擴(kuò)展的方法
- php擴(kuò)展開發(fā)入門demo示例
相關(guān)文章
Apache啟動(dòng)報(bào)錯(cuò)No space left on device: AH00023該怎么解決
最近有朋友說(shuō):Apache啟動(dòng)報(bào)錯(cuò)No space left on device: AH00023,是怎么回事,該怎么解決呢?經(jīng)過小編的一番折騰,問題解決,下面把解決辦法分享給大家,需要的朋友可以參考下2015-10-10
zen_cart實(shí)現(xiàn)支付前生成訂單的方法
這篇文章主要介紹了zen_cart實(shí)現(xiàn)支付前生成訂單的方法,結(jié)合實(shí)例形式詳細(xì)分析了zen_cart支付前生成訂單的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-05-05
Thinkphp搭建包括JS多語(yǔ)言的多語(yǔ)言項(xiàng)目實(shí)現(xiàn)方法
這篇文章主要介紹了Thinkphp搭建包括JS多語(yǔ)言的多語(yǔ)言項(xiàng)目實(shí)現(xiàn)方法,可實(shí)現(xiàn)通過針對(duì)js語(yǔ)言包的調(diào)用達(dá)到構(gòu)建多語(yǔ)言站點(diǎn)的效果,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11
laravel5.6實(shí)現(xiàn)數(shù)值轉(zhuǎn)換
今天小編就為大家分享一篇laravel5.6實(shí)現(xiàn)數(shù)值轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-10-10
淺談php數(shù)組array_change_key_case() 函數(shù)和array_chunk()函數(shù)
下面小編就為大家?guī)?lái)一篇淺談php數(shù)組array_change_key_case() 函數(shù)和array_chunk()函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-10-10

