麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

探討-如何編寫PHP擴展

2020-03-22 20:04:47
字體:
來源:轉載
供稿:網友
用C/C++擴展PHP的優缺點:
優點:
效率,還是效率
減少PHP腳本的復雜度, 極端情況下, 你只需要在PHP腳本中,簡單的調用一個擴展實現的函數,然后你所有的功能都就被擴展實現了
而缺點也是顯而易見的:
開發復雜
可維護性降低
開發周期變長, 最簡單的一個例子,當你用PHP腳本的時候, 如果你發現某個判斷條件出錯,你只要修改了這一行,保存,那么就立刻能見效。 而如果是在C/C++編寫的PHP擴展中, 那你可需要,修改源碼,重新編譯,然后重新load進PHP, 然后重啟Apache,才能見效。
如果你熟悉C,那么編寫一個PHP擴展,并不是什么非常難的事情。 PHP本身就提供了一個框架,來簡化你的開發。
最簡單的方式來開始一個PHP擴展的開發,是使用PHP提供的擴展框架wizard ext_skel, 它會生成一個PHP擴展所必須的最基本的代碼, 要使用它,首先你要下載PHP的源碼,或者開發包, 進入PHP源碼的ext目錄, 就會發現這個工具。
生成一個擴展:
./ext_skel --extname=myext
進入/myext,選擇擴展類型:
vi config.m4
下面兩種類型選一個就行了:
復制代碼 代碼如下:
//(依賴外部庫)
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])//或者將 //(不依賴外部庫) 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[] */
};
//在文件底部添加自己的函數
PHP_FUNCTION(myext)
{
zend_printf("Hello World!/n");
}
安裝自己的php擴展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服務器,查看phpinfo,即可看到自己的擴展:


新建測試php文件:

?php
myext();

執行此文件,即可看到再熟悉不過的“Hello World!”。



PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91精品国产综合久久青草 | 精品国产乱码久久久久久久 | 91成人精品 | 国产日产精品一区二区三区四区 | 毛片在线视频免费观看 | 一分钟免费观看完整版电影 | 精品国内视频 | 欧美日韩a∨毛片一区 | 久久国产精品区 | h视频在线免费看 | 成人一级视频在线观看 | 精国产品一区二区三区四季综 | 国产日韩免费观看 | 国产亚洲欧美日韩高清 | 亚洲网站在线 | 91精品国产乱码久久久久久久久 | 天天操天天碰 | 羞羞草视频 | 日本成人一二三区 | 性欧美极品xxxx欧美一区二区 | 毛片免费观看日本中文 | 国产精品久久久乱弄 | 成人不卡 | 国产一级aaa全黄毛片 | 久久九九热re6这里有精品 | 亚洲第一综合色 | 91一区二区在线观看 | 欧美日韩视频网站 | 久久精品久久精品久久精品 | 九九热视频免费观看 | 日韩蜜桃视频 | 欧美成人二区 | 国产成人精品一区二区视频免费 | 精品久久久一 | 国产一国产一级毛片视频在线 | 精品一区二区在线观看视频 | 91九色蝌蚪在线 | 毛片在线播放视频 | 精品亚洲在线 | 天天躁狠狠躁夜躁2020挡不住 | 亚洲精品久久久久久久久久 |