PHP輸入流php://input的使用分析
在做一個(gè)攝像頭拍照然后上傳的功能,php中使用php://input來(lái)獲取內(nèi)容。于是就了解了下php://input。
從官網(wǎng)信息來(lái)看,php://input是一個(gè)只讀信息流,當(dāng)請(qǐng)求方式是post的,并且enctype不等于“multipart/form-data”時(shí),可以使用php://input來(lái)獲取原始請(qǐng)求的數(shù)據(jù)。
看一個(gè)簡(jiǎn)單的例子。
客戶端就是一個(gè)表單,非常簡(jiǎn)單。
<form action='' method='POST'> name: <input type='text' name='name' value='tom' /><br /> age:<input type='text' name='age' value='22' /><br /> <input type='submit' value='Submit' /></form>
將表單提交到服務(wù)端,服務(wù)端使用file_get_contents獲取php://input內(nèi)容
$content = file_get_contents('php://input');echo $content; // 輸出name=tom&age=22
官網(wǎng)關(guān)于php://input的說(shuō)明中,反復(fù)有提到 $HTTP_RAW_POST_DATA 這個(gè)變量,這個(gè)變量其實(shí)和 file_get_contents(php://input) 的內(nèi)容是一樣的。如果要開(kāi)啟這個(gè)變量,需要修改配置文件,找到always_populate_raw_post_data這個(gè)選項(xiàng),設(shè)置為On,然后重新啟動(dòng)web服務(wù)器,就可以了。而使用php://input不需要修改php配置文件。
在項(xiàng)目應(yīng)用中,如攝像頭拍照,上傳保存,就可以用到php://input。客戶端拍照后,把圖片流傳送到服務(wù)端,服務(wù)端使用 file_get_getcontents(’php://input’)就能獲取到圖片流,然后把圖片流保存到一個(gè)文件,這個(gè)文件就是圖片了。
相關(guān)文章:
1. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向2. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明3. CSS hack用法案例詳解4. PHP設(shè)計(jì)模式中工廠模式深入詳解5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. asp中response.write("中文")或者js中文亂碼問(wèn)題7. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息8. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過(guò)程(親測(cè)可用)9. ASP 處理JSON數(shù)據(jù)的實(shí)現(xiàn)代碼10. .NET中l(wèi)ambda表達(dá)式合并問(wèn)題及解決方法
