一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 淺談PHP接收POST數據方式

淺談PHP接收POST數據方式

2020-09-27 16:18PHP中文網 PHP教程

本文給大家簡單介紹了下php接收post數據的3種方式,并附上了一則簡單的示例,有需要的小伙伴可以參考下

通常情況下用戶使用瀏覽器網頁表單向服務器post提交數據,我們使用PHP接收用戶POST到服務器的數據,并進行適當的處理。但有些情況下,如用戶使用客戶端軟件向服務端php程序發送post數據,而不能用$_POST來識別,那又該如何處理呢?

$_POST方式接收數據

$_POST方式是通過 HTTP POST 方法傳遞的變量組成的數組,是自動全局變量。如使用$_POST['name']就可以接收到網頁表單以及網頁異步方式post過來的數據,即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數據。

$GLOBALS['HTTP_RAW_POST_DATA']方式接收數據

如果用過post過來的數據不是PHP能夠識別的文檔類型,比如 text/xml 或者 soap 等等,我們可以用$GLOBALS['HTTP_RAW_POST_DATA']來接收。$HTTP_RAW_POST_DATA 變量包含有原始的POST數據。此變量僅在碰到未識別MIME 類型的數據時產生。$HTTP_RAW_POST_DATA 對于enctype="multipart/form-data" 表單數據不可用。也就是說使用$HTTP_RAW_POST_DATA無法接收網頁表單post過來的數據。

php://input方式接收數據

如果訪問原始 POST 數據的更好方法是 php://input。php://input 允許讀取 POST 的原始數據。和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,并且不需要任何特殊的php.ini設置,而php://input不能用于 enctype="multipart/form-data"。

例如,用戶使用某個客戶端應用程序post給服務器一個文件,文件的內容我們不管它,但是我們要把這個文件完整的保存在服務器上,我們可以使用如下代碼:

?
1
2
$input = file_get_contents('php://input');
file_put_contents($original, $input); //$original為服務器上的文件

以上代碼使用file_get_contents('php://input')接收post數據,然后將數據寫入$original文件中,其實可以理解為從客戶端上傳了一個文件到服務器上,此類應用非常多,尤其是我們PHP開發要與C,C++等應用程序開發進行產品聯合開發時會用到。

以下是一個小示例,演示了$_POST,$GLOBALS['HTTP_RAW_POST_DATA']和php://input三種不同方式的接收POST數據處理:

a.html

?
1
2
3
4
5
<form name="demo_form" action="post.php" method="post">
  <p><label>Name: </label><input type="text" class="input" name="name"></p>
  <p><label>Address: </label><input type="text" class="input" name="address"></p>
  <p><input type="submit" name="submit" class="btn" value="Submit"></p>
</form>

post.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
header("Content-type:text/html;charset=utf-8");
 
echo '$_POST接收:<br/>';
print_r($_POST);
echo '<hr/>';
 
echo '$GLOBALS[\'HTTP_RAW_POST_DATA\']接收:<br/>';
print_r($GLOBALS['HTTP_RAW_POST_DATA']);
echo '<hr/>';
 
echo 'php://input接收:<br/>';
$data = file_get_contents('php://input');
print_r(urldecode($data));

以上所述就是本文的全部內容了,希望大家能夠對php接收post數據的3種方式能夠有所了解。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一二区 | 草草视频免费看 | 白丝尤物的下面被疯狂蹂躏 | 国产欧美日韩在线播放 | 男男羞羞视频网站国产 | 亚洲欧美专区 | 欧美a一片xxxx片与善交 | 亚洲色图150p | 18岁的老处女 | 亚洲邪恶天堂影院在线观看 | 免费高清在线视频色yeye | 美女扒开腿让男人桶爽免费gif | 天天做天天爱天天操 | 国产成人精品一区 | 特黄特色大片免费高清视频 | 99久久久久国产 | 好大好湿好硬好爽好深免费视频 | 单身男女韩剧在线看 | 大学生按摩黄a级中文片 | 全弄乱纶小说 | 波多野 在线 | 日出水了特别黄的视频 | 91精品啪在线观看国产91九色 | 国产永久一区二区三区 | 精品国产一级毛片大全 | 日本视频免费在线观看 | 超级乱淫 不详 | 公妇乱淫在线播放免费观看 | 成人男女啪啪免费观看网站 | 丝瓜视频在线观看污 | 手机亚洲第一页 | 亚洲精品免费在线观看 | 国产大秀视频一区二区三区 | 欧美精品黑人巨大在线播放 | 日韩色图区 | 成人影院观看 | 亚洲黄色片免费看 | 天天狠天天透天干天天怕处 | 鄂州一家三口完整版免费 | 97热久久免费频精品99国产成人 | 男人午夜视频在线观看 |