最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
cgi與php的區(qū)別是什么?

區(qū)別:CGI是協(xié)議和標準,是一種規(guī)范,不是語言;遵循這個標準就可以用各種語言(包括PHP)編寫程序處理網(wǎng)頁請求和返回數(shù)據(jù)到客戶端瀏覽器。而PHP是一個動態(tài)網(wǎng)頁開發(fā)語言,PHP可以以CGI方式工作,也可以ISAPI、NSAPI等模塊方式工作。

創(chuàng)新互聯(lián)專注于平桂網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供平桂營銷型網(wǎng)站建設,平桂網(wǎng)站制作、平桂網(wǎng)頁設計、平桂網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務,打造平桂網(wǎng)絡公司原創(chuàng)品牌,更為您提供平桂網(wǎng)站排名全網(wǎng)營銷落地服務。

CGI是通用網(wǎng)關協(xié)議,是開發(fā)動態(tài)網(wǎng)頁的一個標準,遵循這個標準就可以用BAT、CMD、sh、PERL、C、C++、PERL以及PHP等語言編寫程序處理網(wǎng)頁請求和返回數(shù)據(jù)到客戶端瀏覽器。CGI是協(xié)議和標準,是一種規(guī)范,不是語言。

cgi是一種接口,不管用什么語言都可以按照這個接口進行實現(xiàn)。一般服務器判斷需要調用cgi程序前,會把請求的GET參數(shù)放在環(huán)境變量QUERY_STRING里,POST請求內容則通過標準輸入流輸送到cgi程序內。cgi程序只需要將HTTP協(xié)議(包括HTTP頭和HTTP Body)打印到標準輸出流stdout,服務器就會把它們直接傳輸給瀏覽器。

//c++實現(xiàn)cgi接口,打印query string和post data
#include 
 
using namespace std;
 
int main() {
    cout << "Content-type:text/html\\n\\n";
    const char *queryString = getenv("QUERY_STRING");
    if (queryString != NULL) {
        cout << "

query string is :" << queryString << "

" << endl; } else { cout << "

No query string

" << endl; } string postData, tmpData; while(cin >> tmpData) { postData += tmpData; } if (postData != "") { cout << "
" << postData << "
" << endl; } else { cout << "

No post data

" << endl; } return 0; }

把它編譯好,命名為test.cgi,然后扔到服務器到cgi目錄里。然后訪問類似于http://localhost/cgi/test.cgi?a=b&c=d的URL,服務器就會把a=b&c=d放到QUERY_STRING環(huán)境變量中傳給test.cgi。最后能看到頁面上顯示出query string is a=b&c=d。也可以創(chuàng)建一個表單,把數(shù)據(jù)POST到http://localhost/cgi/test.cgi,然后可以看到頁面上顯示出所有的POST data。

PHP是一個動態(tài)網(wǎng)頁開發(fā)語言,主要用于處理瀏覽器提交的數(shù)據(jù)以及返回結果給瀏覽器。PHP可以以CGI方式工作,也可以以ISAPI、NSAPI等模塊方式工作。

PHP寫CGI程序:

#!/usr/env php
query string is : $queryString";
} else {
    echo "

No query string

"; } $postData = file_get_contents("php://stdin"); if ($postData != "") { echo "
$postData
"; } else { echo "

No post data

"; } ?>

好吧它的功能跟上面C++寫的程序一毛一樣,我們把它加上“可執(zhí)行屬性”chmod +x testphp.cgi然后扔到cgi目錄,然后訪問http://localhost/cgi/testphp.cgi?a=b&c=d,以及用表單post數(shù)據(jù)給它,看到的效果應該是一樣的。

所以你也看到了,服務器調用CGI程序,它才不管你用啥實現(xiàn)的,反正接口都定好了,只要按接口來編程就行。

但一般服務器調用PHP和調用CGI程序的邏輯不一樣。CGI程序需要自己解析QUERY_STRING和POST_DATA,PHP應該是通過另一套擴展跟服務器交互的,所以一般用PHP直接寫網(wǎng)頁的時候,寫網(wǎng)頁的方式跟平時還真不太一樣,比如說,服務器的php擴展已經(jīng)幫我們把query string和post data解析成了數(shù)組,我們直接取值就好了:

No query string

"; } if (isset($_POST)) { print_r($_POST); } else { echo "

No post data

"; } ?>

存成test.php之后訪問http://localhost/test.php?a=b&c=d,或者表單提交內容到頁面??梢钥吹捷敵龅臄?shù)據(jù)都是結構化的,已經(jīng)變成數(shù)組了。而且,HTTP頭也不需要我們自己輸出了(特殊情況除外)。

更多相關知識,請訪問:PHP中文網(wǎng)!
新聞標題:cgi與php的區(qū)別是什么?
新聞來源:http://fisionsoft.com.cn/article/cjpgsd.html