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

資訊專欄INFORMATION COLUMN

【modernPHP專題(14)】內(nèi)置的http服務(wù)器

RancherLabs / 2995人閱讀

摘要:起就在中內(nèi)置了服務(wù)器但只是提供開發(fā)測(cè)試使用,不推薦使用中生產(chǎn)環(huán)境中。因?yàn)檫@個(gè)服務(wù)器接受處理請(qǐng)求時(shí)順序執(zhí)行的,不能并發(fā)處理。這個(gè)內(nèi)置的服務(wù)器使用起來非常的方便,你只需要執(zhí)行下面的命令啟動(dòng)服務(wù)器然后就可以訪問了。

PHP 5.4起就在CLI SAPI中內(nèi)置了web服務(wù)器,但只是提供開發(fā)測(cè)試使用,不推薦使用中生產(chǎn)環(huán)境中。因?yàn)檫@個(gè)服務(wù)器接受處理請(qǐng)求時(shí)順序執(zhí)行的,不能并發(fā)處理。

這個(gè)內(nèi)置的web服務(wù)器使用起來非常的方便,你只需要執(zhí)行下面的命令:

啟動(dòng)Web服務(wù)器
$ php -S localhost:8000

然后就可以訪問了。這樣啟動(dòng)后,默認(rèn)的web服務(wù)目錄是執(zhí)行命令的當(dāng)前目錄,如果不想使用當(dāng)前目錄,你需要使用 -t 參數(shù)來指定。

啟動(dòng)web服務(wù)器時(shí)指定文檔的根目錄
php -S localhost:8000 -t foo/
使用路由器腳本

在這個(gè)例子中,對(duì)圖片的請(qǐng)求會(huì)返回相應(yīng)的圖片,但對(duì)HTML文件的請(qǐng)求會(huì)顯示“Welcome to PHP”:

// router.php
if (preg_match("/.(?:png|jpg|jpeg|gif)$/", $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
} else {
    echo "

Welcome to PHP

"; }
$ php -S localhost:8000 router.php
判斷是否是在使用內(nèi)置web服務(wù)器

通過程序判斷來調(diào)整同一個(gè)PHP路由器腳本在內(nèi)置Web服務(wù)器中和在生產(chǎn)服務(wù)器中的不同行為:

// router.php
if (php_sapi_name() == "cli-server") {
/* route static assets and return false */
}
/* go on with normal index.php operations */
$ php -S localhost:8000 router.php

這個(gè)內(nèi)置的web服務(wù)器能識(shí)別一些標(biāo)準(zhǔn)的MIME類型資源,它們的擴(kuò)展有:.css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg, and .txt。對(duì).htm 和 .svg 擴(kuò)展到支持是在PHP 5.4.4之后才支持的。

處理不支持的文件類型

如果你希望這個(gè)Web服務(wù)器能夠正確的處理不被支持的MIME文件類型,這樣做:

// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "ogg") {
header("Content-Type: video/ogg");
readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
return FALSE;
}
$ php -S localhost:8000 router.php
遠(yuǎn)程訪問這個(gè)內(nèi)置Web服務(wù)器

如果你希望能遠(yuǎn)程的訪問這個(gè)內(nèi)置的web服務(wù)器,你的啟動(dòng)命令需要改成下面這樣:

$ php -S 0.0.0.0:8000

這樣你就可以通過 8000 端口遠(yuǎn)程的訪問這個(gè)內(nèi)置的web服務(wù)器了

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31464.html

相關(guān)文章

  • modernPHP專題(13)】ZendOpcache字節(jié)碼緩存

    摘要:概述字節(jié)碼緩存不是的新特性,有很多獨(dú)立的擴(kuò)展可以實(shí)現(xiàn),比如和等,但是截至目前這些擴(kuò)展都沒有集成到內(nèi)核,從開始,內(nèi)置了字節(jié)碼緩存功能,名為。開始之前,我們先來看看什么是字節(jié)碼緩存,以及字節(jié)碼緩存的作用是什么。該函數(shù)將重置整個(gè)字節(jié)碼緩存。 概述 字節(jié)碼緩存不是PHP的新特性,有很多獨(dú)立的擴(kuò)展可以實(shí)現(xiàn),比如APC、eAccelerator和Xache等,但是截至目前這些擴(kuò)展都沒有集成到PHP...

    KevinYan 評(píng)論0 收藏0
  • modernPHP專題(2)】反射機(jī)制Reflection

    摘要:簡(jiǎn)介是才有的新功能,它是用來導(dǎo)出或提取出關(guān)于類方法屬性參數(shù)等的詳細(xì)信息,包括注釋。 簡(jiǎn)介 PHP Reflection API是PHP5才有的新功能,它是用來導(dǎo)出或提取出關(guān)于類、方法、屬性、參數(shù)等的詳細(xì)信息,包括注釋。 class Reflection { } interface Reflector { } class ReflectionException extends Exce...

    mrli2016 評(píng)論0 收藏0
  • modernPHP專題(3)】依賴注入與服務(wù)容器

    摘要:而依賴倒置原則的思想是,上層不應(yīng)該依賴下層,應(yīng)依賴接口。上面通過構(gòu)造函數(shù)注入對(duì)象的方式,就是最簡(jiǎn)單的依賴注入當(dāng)然注入不僅可以通過構(gòu)造函數(shù)注入,也可以通過屬性注入,上面你可以通過一個(gè)來動(dòng)態(tài)為這個(gè)屬性賦值。 依賴倒置和控制反轉(zhuǎn)是一種編程思想,而依賴注入就是通過服務(wù)容器實(shí)現(xiàn)這種面向接口或者是面向抽象編程的思想 概念理解 依賴倒置原則 依賴倒置是一種軟件設(shè)計(jì)思想,在傳統(tǒng)軟件中,上層代碼依賴于下...

    terro 評(píng)論0 收藏0
  • modernPHP專題(5)】類多繼承替代方案Traits

    摘要:概述是新進(jìn)入的特性,其目的就是解決的類不能多繼承的問題??梢岳斫鉃橐唤M能被不同的類都能調(diào)用到的方法集合。只需要在類中使用關(guān)鍵詞引入即可,可引入多個(gè),用隔開。為了解決多個(gè)在同一個(gè)類中的命名沖突,需要使用操作符來明確指定使用沖突方法中的哪一個(gè)。 概述 traits是PHP5.4新進(jìn)入的特性,其目的就是解決PHP的類不能多繼承的問題。Traits不是類!不能被實(shí)例化。可以理解為一組能被不同的...

    imtianx 評(píng)論0 收藏0
  • modernPHP專題(12)】魔術(shù)方法小結(jié)

    說明 魔術(shù)方法就是在特定場(chǎng)景下不需要調(diào)用而自動(dòng)執(zhí)行的方法。因?yàn)橛心g(shù)方法,所以我們的類可以寫得很靈活~ __construct #構(gòu)造方法,在類被實(shí)例化時(shí)自動(dòng)調(diào)用,一般用于初始化操作; __destruct #析構(gòu)方法,對(duì)象被銷毀時(shí)自動(dòng)調(diào)用; __clone() #克隆方法,當(dāng)對(duì)象被克隆時(shí),將會(huì)自動(dòng)調(diào)用 __get($key) #屬性獲取...

    hearaway 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

RancherLabs

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<