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