如何使用C語言來編寫PHP的擴展,PHP作為一門開源語言
2021-06-27
本文分享如何使用C語言編寫PHP擴展。作為一門開源語言,社區(qū)中有很多熱愛開源開發(fā)的愛好者。 PHP 在 web 領(lǐng)域如此強大的主要原因之一一直是站穩(wěn)腳跟。這是因為 PHP 有許多強大的擴展。除了官方自己提供的擴展,還有更多的開源大牛加入,比如韓天峰的,伯德的yaf,yar等等,具體步驟就不多說了。
第一步
到官網(wǎng)下載PHP源代碼文件并解壓到電腦某個文件夾中,在根文件夾中找到如下文件\php7\ext\.php。注意:此腳本為我們提供了生成自定義擴展的框架。
第二步
因為有些命令只支持系統(tǒng),所以我們需要安裝這個軟件來幫助我們支持一些命令,并將它們設(shè)置為系統(tǒng)環(huán)境變量。
執(zhí)行命令 .php --=demo。注意:首先將PHP添加為系統(tǒng)環(huán)境變量
ext目錄下會生成demo擴展文件夾,里面包含要編寫的demo擴展的基本文件。
第三步
修改demo.c文件,找到C語言的函數(shù)(d)在這個方法下面添加你的方法代碼,例如:
1
2
3
(演示){
("C");
}
然后修改如下方法
1
2
3
4
5
[]={
(d,NULL)/* 對于,. */
(demo,NULL)//這里添加一行代碼
/* 必須是 [] 中的最后一行 */
};
注意:為了讓擴展匹配php運行環(huán)境,必須基于你的php運行環(huán)境的編譯版本(php7是VC14編譯的),在文件夾E:\php7\main\.w3 2.h文件中添加:
1
#“VC14”
第四步
使用編輯器編譯DLL文件
加載你的 PHP 擴展文件路徑
將解決方案切換到
右擊右邊的項目屬性,添加PHP源代碼目錄(看你的實際路徑)
E:\php7
E:\php7\main
E:\php7\TSRM
E:\php7\Zend
右鍵單擊項目屬性、C/C++、預(yù)處理器、預(yù)處理器定義,編輯并添加以下變量:
=0
=1(這里紅色部分需要改成你的擴展名,如果不改成你的擴展名php printer.dll擴展,php不會識別)
(這里紅色部分需要改成你的擴展名,如果不改成你的擴展名,php不會識別)
ZTS(添加這個變量是為了開啟線程安全,不添加則關(guān)閉線程安全)
在E:\php7\\\文件夾中找到“.w32.h.in”,把這個文件復(fù)制到E:\php7\main\文件夾,去掉下面的“.in”
右鍵項目屬性php printer.dll擴展,鏈接器,輸入,附加依賴,編輯,把php7.lib的路徑放進去(這個文件在php編譯后的文件夾下,根目錄下的dev文件夾下)目錄)
步驟 5
最后點擊 in完成編譯。
將\ext\demo\下的demo.dll文件放入PHP中并添加擴展。
1
2
3
演示();
我有時間想出如何編譯so擴展文件,一點PHP,一點技術(shù)分享。