{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問答專欄Q & A COLUMN

什么是PHP?PHP有什么特點(diǎn)?

awkjawkj 回答2 收藏1
收藏問題

2條回答

Hwg

Hwg

回答于2022-06-22 19:23

PHP(“PHP: Hypertext Preprocessor”,超文本預(yù)處理器的字母縮寫)是一種被廣泛應(yīng)用的開放源代碼的多用途腳本語言,它可嵌入到 HTML中,尤其適合 web 開發(fā)。

最初是1994年Rasmus Lerdorf創(chuàng)建,只是一個(gè)簡單的用Perl語言編寫的程序,后來用C語言重構(gòu),可以訪問數(shù)據(jù)庫,在1995年對(duì)外發(fā)表了第一個(gè)版本。

編程范型是面向?qū)ο?、命令式編程的語法吸收了C語言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛;其PHP獨(dú)特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。

簡單來說就是動(dòng)態(tài)腳本語言,開發(fā)網(wǎng)站、輕應(yīng)用最好的一門弱類型、服務(wù)器端語言;簡單靈活、輕量便捷,很是適合新手入門!

在網(wǎng)站開發(fā)中,用于網(wǎng)頁數(shù)據(jù)交互、動(dòng)態(tài)效果實(shí)現(xiàn),且可以執(zhí)行編譯后的代碼,編譯還可以達(dá)到加密和優(yōu)化代碼運(yùn)行,執(zhí)行更加快速,大大的減少了系統(tǒng)資源的消耗。

現(xiàn)在的數(shù)據(jù)庫以及操作系統(tǒng)PHP一般都支持,PHP可使用抽象層如“PDO”,或者過 ODBC 擴(kuò)展連接到任何支持 ODBC 標(biāo)準(zhǔn)的數(shù)據(jù)庫。

在這基礎(chǔ)上PHP還有一個(gè)強(qiáng)大的圖像處理系統(tǒng),CGI的功能PHP全部都能實(shí)現(xiàn),它包含了命令列執(zhí)行接口(command line interface),或者產(chǎn)生圖形使用者接口(GUI)程式。

另外還有一個(gè)跨平臺(tái)的特性,可以運(yùn)行在多平臺(tái)(如LINUX、UNIX、Mac OS、WINDOWS、Android等)。

PHP代碼屬于開源所以說完全可以免費(fèi)下載使用,沒有成本。


評(píng)論0 贊同0
  •  加載中...
wangxinarhat

wangxinarhat

回答于2022-06-22 19:23

tep 1 =>

php的擴(kuò)展模塊都放在 ext/ 目錄下,比如說 snmp模塊、mysql模塊。 我們要建立自己的模塊,就要在ext目錄下為自己的模塊建一個(gè)目錄。比如,我們要做一個(gè)分析config文件的模塊,命名為pconfig模塊(parse config的簡寫),需在ext下建立目錄pconfig。將我寫好的7個(gè)文件copy到該目錄下,另外需對(duì)主目錄下的configure和internal_functions.c作一些修改。

Step 2 =>

Makefile.am Makefile.in

是模板文件,用戶執(zhí)行configure時(shí),會(huì)調(diào)用這兩個(gè)文件,生成編譯時(shí)所用的Makefile文件。修改時(shí)將小寫的pconfig換成你自己的模塊名,別忘了把大寫的PCONFIG也替換掉(不要告訴我你不會(huì)vi的替換語句)。config.m4也是執(zhí)行configure將會(huì)調(diào)用的檢測(cè)腳本程序,以后我們來討論這些腳本程序的更深入的修改?,F(xiàn)在你只需要把pconfig該成你的模塊就可以了。對(duì)config.h.stub和setup.stub也如法炮制。其實(shí)setup.stub也沒什么用。

Step 3 =>

php3-pconfig.h 頭文件中

extern php3_module_entry pconfig_module_entry;

#define pconfig_module_ptr &pconfig_module_entry

#define phpext_pconfig_ptr pconfig_module_ptr

這幾行定義了模塊的入口,將入口注冊(cè)到php后,php會(huì)通過模塊入口找到你寫的函數(shù)

下面幾個(gè)函數(shù)定義是用宏進(jìn)行定義的,展開以后其實(shí)就是 php3_minit_pconfig , php3_rinit_pconfig ……分別在你的模塊初試化或結(jié)束時(shí)被調(diào)用,如果你的模塊很簡單,也就不需要這些定義了

extern PHP_MINIT_FUNCTION(pconfig);

extern PHP_RINIT_FUNCTION(pconfig);

extern PHP_MSHUTDOWN_FUNCTION(pconfig);

PHP_MINFO_FUNCTION(pconfig);

這是你的函數(shù)聲明,將來寫在php腳本語句中的函數(shù)名就是在PHP_FUNCTION中定義的名字。

PHP_FUNCTION(pconfig_test);

如果有多個(gè),還可以繼續(xù)往下加

PHP_FUNCTION(pconfig_parsefile);

PHP_FUNCTION(pconfig_release); …….

Step 4 =>

接下來我們看最重點(diǎn)的C代碼了

function_entry pconfig_functions[] = {

PHP_FE(pconfig_test, NULL)

{NULL, NULL, NULL}

};

定義的是你的函數(shù)的入口(前面我們提到過模塊的入口),按照格式將你在頭文件中定義的函數(shù)寫進(jìn)去吧。注意,這是用宏定義的,不要管語法是否正確。以后我們具體討論這些宏的用法。

php3_module_entry pconfig_module_entry = {

"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES

};

注冊(cè)模塊的入口信息,比如模塊名,函數(shù)接口,初試化模塊將調(diào)用的函數(shù)等等,如果你的模塊不執(zhí)行復(fù)雜操作的話,可以忽略掉他們,寫成

php3_module_entry pconfig_module_entry = {

"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES

};

Step 5 =>

寫你自己的函數(shù)

在頭文件和function_entry處,我們已經(jīng)定義了自己的函數(shù)pconfig_test,現(xiàn)在我們就來實(shí)現(xiàn)pconfig_test的功能。就比如執(zhí)行兩個(gè)數(shù)相加的和吧。

static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)

{ ......

}

PHP_FUNCTION(pconfig_test)

{

_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);

}

當(dāng)系統(tǒng)調(diào)用pconfig_test時(shí),會(huì)調(diào)用你的_php3_pconfig_test函數(shù),當(dāng)然你也可以把_php3_pconfig_test里的內(nèi)容直接寫在PHP_FUNCTION(pconfig_test)中,這樣做只是程序結(jié)構(gòu)比較清晰。注意:不要將_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展開后實(shí)際上就是php3_pconfig_test!

Step 6 =>

好了,現(xiàn)在我們開始修改configure,在echo $ac_n "checking for MySQL support""... $ac_c" 1>&6的前面(當(dāng)然,如果你熟悉configure的話,可以加在任何合適的地方)加上下面幾句話

if test "${with_pconfig+set}" = set; then

withval="$with_pconfig"

# Add your lib in here

EXTRA_LIBS="$EXTRA_LIBS"

# Add your include path in here

INCLUDES="$INCLUDES"

EXT_SUBDIRS="$EXT_SUBDIRS pconfig"

EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"

EXTINFO_DEPS="$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub"

EXT_STATIC="$EXT_STATIC pconfig"

fi

修改internal_functions.c,在頭文件定義中加入#include "ext/pconfig/php3_pconfig.h"

在zend_module_entry數(shù)組中加入phpext_pconfig_ptr,

Step 7 =>

從新configure,帶上需要的參數(shù),不要忘記的是在參數(shù)里加入 --with-pconfig

Step 8 =>

index.php3

<? echo pconfig_test(123,678)."

"; ?>

執(zhí)行%>php index.php3

評(píng)論0 贊同0
  •  加載中...

相關(guān)問題

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<