第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

ThinkPHP 響應(yīng)輸出

1. 前言

本小節(jié)主要介紹 ThinkPHP 框架的響應(yīng)輸出,默認(rèn)輸出格式是 HTML,下面分別介紹 html輸出、模板渲染輸出、JSON輸出xml輸出,不同格式的輸出是需要結(jié)合業(yè)務(wù)場(chǎng)景的,不同的業(yè)務(wù)功能可能會(huì)需要返回不同的格式響應(yīng),主要是方便對(duì)接其他功能接口或者其他語言而設(shè)計(jì)的,在實(shí)際業(yè)務(wù)中 JSON 格式比較常見。

2. HTTP 狀態(tài)碼

HTTP 狀態(tài)碼是用以表示網(wǎng)頁服務(wù)器超文本傳輸協(xié)議響應(yīng)狀態(tài)的 3 位數(shù)字代碼,下面列舉出幾種常見的 HTTP 狀態(tài)碼及含義:

響應(yīng)碼 含義描述
100 Continue 客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求,如果請(qǐng)求已經(jīng)完成,忽略這個(gè)響應(yīng)。服務(wù)器必須在請(qǐng)求完成后向客戶端發(fā)送一個(gè)最終響應(yīng)。
200 OK 請(qǐng)求已成功,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回,出現(xiàn)此狀態(tài)碼是表示正常狀態(tài)。
201 Created 請(qǐng)求已經(jīng)被實(shí)現(xiàn),而且有一個(gè)新的資源已經(jīng)依據(jù)請(qǐng)求的需要而建立。
301 Moved Permanently 被請(qǐng)求的資源已永久移動(dòng)到新位置。
404 Not Found 請(qǐng)求失敗,請(qǐng)求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)。
500 Internal Server Error 服務(wù)器遇到了一個(gè)未曾預(yù)料的狀況,服務(wù)器端的源代碼出現(xiàn)錯(cuò)誤時(shí)出現(xiàn)。
502 Bad Gateway 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從上游服務(wù)器接收到無效的響應(yīng)。

3. html 響應(yīng)

ThinkPHP 框架默認(rèn)輸出是 html 格式,如果你只需要輸出 html 格式,可以使用 response() 函數(shù),或者直接返回字符串:

<?php


namespace app\controller\Study;


use app\BaseController;

class ImoocController extends BaseController
{
    public function get()
    {
        $htmlStr = "<h1>這是HTML H1 標(biāo)簽</h1><h2>這是HTML H2 標(biāo)簽</h2><h3>這是HTML H3 標(biāo)簽</h3><h4>這是HTML H4 標(biāo)簽</h4>";
        return response($htmlStr);
    }
}

Tips: 路由定義是 Route::get('imooc', 'app\controller\Study\ImoocController@get');;

輸出內(nèi)容如下圖所示:
圖片描述
也可以直接返回 html 字符串響應(yīng)的結(jié)果和上面一致:

    public function get()
    {
        $htmlStr = "<h1>這是HTML H1 標(biāo)簽</h1><h2>這是HTML H2 標(biāo)簽</h2><h3>這是HTML H3 標(biāo)簽</h3><h4>這是HTML H4 標(biāo)簽</h4>";
        return $htmlStr;
    }

4. json 響應(yīng)

當(dāng)給客戶端提供 api 接口時(shí)通常使用的數(shù)據(jù)響應(yīng)格式為 JSON,使用 json() 函數(shù)可以直接將數(shù)組內(nèi)容以 JSON 格式輸出:

    public function get(){
        $reArr = ["name"=>"愛因詩賢","age"=>18,"weight"=>65,"title" => "慕課網(wǎng) ThinkPHP"];
       return json($reArr);
    }

輸出內(nèi)容如下圖所示:
圖片描述

json 函數(shù)默認(rèn)的響應(yīng)碼是 200,如下代碼可以給返回的 JSON 數(shù)據(jù)帶上指定的 HTTP 響應(yīng)碼:

    public function get()
    {
        $height = $this->request->param('height', 0, 'intval');
        if ($height == 0) {
            return json("身高參數(shù)不合法", 404);
        }
    }

輸出內(nèi)容如下圖所示:
圖片描述

Tips: json("身高參數(shù)不合法", 404) 第二參數(shù) 404 表示返回指定的 HTTP 狀態(tài)碼。

5. xml 響應(yīng)

使用 xml() 函數(shù)可以直接將數(shù)組內(nèi)容以 xml 格式輸出:

    public function get(){
        $reArr = ["name"=>"愛因詩賢","age"=>18,"weight"=>65,"title" => "慕課網(wǎng) ThinkPHP"];
       return xml($reArr);
    }

輸出內(nèi)容如下圖所示:
圖片描述

6. 模板渲染響應(yīng)

6.1 安裝模板引擎模塊

使用模板引擎需要加載 view 模塊,使用如下 composer 命令即可安裝模板引擎模塊:

Composer require topthink/think-view

安裝視頻如下:

6.2 調(diào)用模板引擎輸出

使用模板引擎需要加載 use think\facade\View ,然后使用 View::fetch() 即可調(diào)用模板輸出了:

<?php


namespace app\controller\Study;


use app\BaseController;
use think\facade\View;

class ImoocController extends BaseController
{
    public function get()
    {
        return View::fetch('imooc/study');
    }
}

輸出內(nèi)容如下圖所示:
圖片描述

Tips: 其中 imooc/study 表示模板的路徑。

如上圖所示,會(huì)提示模板信息不存在,這時(shí)候需要在 view 目錄下新建對(duì)應(yīng)的 study.html 模板文件:
圖片描述
接下來就可以編寫 html 內(nèi)容了,這里為了演示方便只是一些簡(jiǎn)單的內(nèi)容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>歡迎來到慕課網(wǎng)的學(xué)習(xí)</h1>
<h2>我是愛因詩賢</h2>
<h3>每天堅(jiān)持學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)和算法》</h3>
<h4>我的年齡是18</h4>
<h5>天空是藍(lán)色的</h5>
</body>
</html>

輸出內(nèi)容如下圖所示:
圖片描述

6.3 模板變量

若想要在模板中嵌套變量,可以使用 View:assign() 方法:

    public function get()
    {
        $title = "imooc";
        $name = "愛因斯坦";
        $book = "《深入理解 Nginx》";
        $age = 99;
        $color = "灰色";
        View::assign('title', $title);
        View::assign('name', $name);
        View::assign('book', $book);
        View::assign('age', $age);
        View::assign('color', $color);
        return View::fetch('imooc/study');
    }

下面是模板變量的表示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>歡迎來到{$title}的學(xué)習(xí)</h1>
<h2>我是{$name}</h2>
<h3>每天堅(jiān)持學(xué)習(xí){$book}</h3>
<h4>我的年齡是{$age}</h4>
<h5>天空是{$color}</h5>
</body>
</html>

輸出內(nèi)容如下圖所示:
圖片描述

7. 小結(jié)

本小節(jié)介紹了幾種不同的請(qǐng)求狀態(tài)碼,不同的狀態(tài)對(duì)于請(qǐng)求客戶端來說表示一種信號(hào),主要注意的是,實(shí)際開發(fā)中需要嚴(yán)格按照規(guī)范來使用狀態(tài)碼。

另外還介紹了幾種不同的請(qǐng)求響應(yīng)輸出方式,模板渲染需要使用 composer 安裝 view 模板引擎模塊,這些不同響應(yīng)都有不同的應(yīng)用場(chǎng)景。如使用框架寫 api 接口時(shí)常用于 JSON 格式,有一些 APS 相關(guān)的接口使用的是 xml,有時(shí)候想要快速開發(fā)一些模板嵌套類的應(yīng)用網(wǎng)站時(shí),模板渲染輸出是不錯(cuò)的選擇。

Tips: 代碼倉庫:https://gitee.com/love-for-poetry/tp6