程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 詳解Window7 下開發php擴展

詳解Window7 下開發php擴展

編輯:PHP綜合

一、首先查看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版本

二、開發前准備工作

php 5.3-5.4 :Visual C++ 9.0(Visual Studio 2008)
安裝Cygwin(下載地址:http://www.cygwin.com/),虛擬linux環境
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目錄添加的系統path

將php-5.4.45-Win32-VC9-x86\dev\php5ts.lib 復制到php-5.4.45-src\Release_TS\php5ts.lib
新建php-5.4.45-src\main\config.win32.h,內容如下:
#define SIZEOF_LONG 4
#define PHP_COMPILER_ID "VC9"
"VC9"對應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、運行cmd,進入php源碼目錄, php-5.4.45-src\ext,運行命令php ext_skel_win32.php --extname=myphpexs


記得將php.exe 所在目錄加入path,--extname=你的擴展名字,

若成功會再ext目錄下生成myphpexs文件夾,內容如下


4、用vs2008 打開myphpexs.dsp, 解決方案配置改為Release,執行生成命令

順利的話將生成php_myphpexs.dll文件,我的將php_myphpexs.dll生成再了php源碼根目錄的Release_TS文件夾中

5、將php_myphpexs.dll放到你php的擴展目錄,再php.ini中加上extension=php_myphpexs.dll

6、新建php腳本文件test.php,內容如下

復制代碼 代碼如下:
echo confirm_myphpexs_compiled('test');

7、運行測試文件,出現如下內容說明,成功了

復制代碼 代碼如下:
Congratulations! You have successfully modified ext/myphpext/config.m4. Module 23 is now compiled into PHP.

8、confirm_myphpexs_compiled是建立擴展是自帶的冊數函數,在編輯你自己的擴展內容時,可以刪除改函數

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved