一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

探討:如何編寫PHP擴(kuò)展

用C/C++擴(kuò)展php的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
效率,還是效率
減少php腳本的復(fù)雜度, 極端情況下, 你只需要在php腳本中,簡(jiǎn)單的調(diào)用一個(gè)擴(kuò)展實(shí)現(xiàn)的函數(shù),然后你所有的功能都就被擴(kuò)展實(shí)現(xiàn)了
而缺點(diǎn)也是顯而易見(jiàn)的:
開發(fā)復(fù)雜
可維護(hù)性降低
開發(fā)周期變長(zhǎng), 最簡(jiǎn)單的一個(gè)例子,當(dāng)你用php腳本的時(shí)候, 如果你發(fā)現(xiàn)某個(gè)判斷條件出錯(cuò),你只要修改了這一行,保存,那么就立刻能見(jiàn)效。 而如果是在C/C++編寫的php擴(kuò)展中, 那你可需要,修改源碼,重新編譯,然后重新load進(jìn)php, 然后重啟Apache,才能見(jiàn)效。
如果你熟悉C,那么編寫一個(gè)php擴(kuò)展,并不是什么非常難的事情。 php本身就提供了一個(gè)框架,來(lái)簡(jiǎn)化你的開發(fā)。
最簡(jiǎn)單的方式來(lái)開始一個(gè)php擴(kuò)展的開發(fā),是使用php提供的擴(kuò)展框架wizard ext_skel, 它會(huì)生成一個(gè)php擴(kuò)展所必須的最基本的代碼, 要使用它,首先你要下載php的源碼,或者開發(fā)包, 進(jìn)入php源碼的ext目錄, 就會(huì)發(fā)現(xiàn)這個(gè)工具。
生成一個(gè)擴(kuò)展:
./ext_skel --extname=myext
進(jìn)入/myext,選擇擴(kuò)展類型:
vi config.m4
下面兩種類型選一個(gè)就行了:
復(fù)制代碼 代碼如下:
//(依賴外部庫(kù))
dnl php_ARG_WITH(myext, for myext support,
dnl Make sure that the comment is aligned:
dnl [ --with-myext Include myext support])
//去掉dnl
 php_ARG_WITH(myext, for myext support,
 Make sure that the comment is aligned:
 [  --with-myext             Include myext support])

//或者將 //(不依賴外部庫(kù)) dnl php_ARG_ENABLE(myext, whether to enable myext support,dnl Make sure that the comment is aligned:dnl [ --enable-myext Enable myext support])//去掉dnl
修改頭文件php_myext.h:
//php_FUNCTION(confirm_myext_compiled); /* For testing, remove later. */
//修改為
php_FUNCTION(myext); /* For testing, remove later. */
修改myext.c:
//將
//zend_function_entry myext_functions[] = {
// php_FE(confirm_myext_compiled, NULL) /* For testing, remove later. */
// {NULL, NULL, NULL} /* Must be the last line in myext_functions[] */
//};
//修改為
zend_function_entry myext_functions[] = {
php_FE(myext, NULL) /* For testing, remove later. */
{NULL, NULL, NULL} /* Must be the last line in myext_functions[] */
};
//在文件底部添加自己的函數(shù)
php_FUNCTION(myext)
{
zend_printf("Hello World!/n");
}
安裝自己的php擴(kuò)展myext:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install


修改php.ini,添加:
extension = "myext.so"
重啟web服務(wù)器,查看phpinfo,即可看到自己的擴(kuò)展:



新建測(cè)試php文件:

<?php
myext();

執(zhí)行此文件,即可看到再熟悉不過(guò)的“Hello World!”。



php技術(shù)探討:如何編寫PHP擴(kuò)展,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品特级毛片一区二区三区 | 久久91精品国产91久久户 | 亚洲一区日韩一区欧美一区a | 5月丁香婷婷 | 国产免费一区二区三区最新 | 成人在线精品视频 | 日韩高清一区二区三区五区七区 | 亚洲资源在线视频 | 国产精选在线播放 | 91久久国产精品视频 | 都市激情亚洲综合 | 国产精品好好热在线观看 | 国产成人激情视频 | 欧美精品高清在线xxxx | 91精品久久久久久久99蜜桃 | seyoyo在线| 亚洲一区二区三区播放在线 | 免费成人午夜视频 | 国产精品亚洲专一区二区三区 | 久久国产美女 | 日本一二三区免费 | 精品免费在线视频 | 91av一区| 视频一区二区三区免费观看 | 亚洲综合色播 | 欧美色视频在线 | 国产精品午夜国产小视频 | 2021色噜噜狠狠综曰曰曰 | 国产精品亚欧美一区二区三区 | 狠狠色噜噜狠狠狠米奇9999 | 午夜影院在线免费观看 | 黄网免费视频 | 国产大片黄在线看免费 | 国产亚洲精品国产福利在线观看 | 在线视频黄色 | 中文字幕永久免费视频 | 日韩a无v码在线播放免费 | 91免费视频观看 | 精品在线一区 | 国产成人精品免费视频大全五级 | 国产福利三区 |