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下編譯通過.

下載http://files.cnblogs.com/logoove/yoby.rar

(Yoby實踐得來,網上相關教程很多)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM