2013-07-12 90 views
0

我正在第一次使用Slim PHP,並且我正在嘗試理解其中一個概念。在纖薄的PHP文件,它規定:slim php(解釋「請求體」文檔)

請求體

使用request對象的getBody()方法來獲取由HTTP客戶端發送HTTP請求的原始體。這對於使用JSON或XML請求的Slim應用程序特別有用。

<?php 
$request = $app->request(); 
$body = $request->getBody(); 

我的問題是,什麼是 「原始的HTTP請求體」?它只是頁面主體中所有HTML的字符串?它以什麼格式存儲? echo $body是什麼樣子?如果我做var_dump($body)我得到string(0)""。我如何使用它?

+1

這是一個REQUEST主體,而不是響應,所以通常沒有HTML。獲取FireBug並使用Network選項卡播放 – astax

+0

@astax我已經有Firebug了...我去了NET選項卡 - 我只看到GET請求...當我單擊箭頭查看它時,我看到標籤'標題,響應,緩存,HTML' ...我應該尋找什麼?無論如何,請求主體有什麼用處? – ewizard

+0

這是查找的正確位置,但GET請求沒有正文,因爲所有參數都在URL中。嘗試使用POST提交任何表單,您將在「發佈」選項卡中看到數據 – astax

回答

1

我只是讓一個答案,而不是評論...

原始請求的數據是什麼從瀏覽器提交的POST請求的主體。 http://en.wikipedia.org/wiki/POST_%28HTTP%29#Use_for_submitting_web_forms

從技術上講,它可以用來從通常的html表格中讀取數據,但是這並沒有多大意義,因爲PHP做得足夠好並且把所有東西都放到$ _POST中。

如果您有一些發送XML或JSON數據的JavaScript,您可能需要閱讀原始數據,這些數據本來不被PHP接受。

+0

啊我看到了...我也在使用backbone.js - 這是我認爲最終會將JSON數據發送到服務器的原因。例如...如果我有一個骨幹用戶對象...我需要獲取用戶名,密碼,電子郵件等,我會使用瘦身PHP的getBody() - 將其作爲數組存儲 - 然後那麼像'$ body [username]'一樣引用它? – ewizard

+0

由於數據是從主幹以JSON的形式發送的,我相信你需要先將它轉換爲這樣:'$ data = json_decode($ request-> getBody(),true);' – Ingro