方法1、最常見(jiàn)的方法是:$_POST['fieldname'];
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了海勃灣免費(fèi)建站歡迎大家使用!
說(shuō)明:只能接收Content-Type:
application/x-www-form-urlencoded提交的數(shù)據(jù)
解釋:也就是表單POST過(guò)來(lái)的數(shù)據(jù)
方法2、file_get_contents("php://input");
說(shuō)明:
允許讀取
POST
的
原始數(shù)據(jù)
。
和
$HTTP_RAW_POST_DATA
比起來(lái),它給內(nèi)存帶來(lái)的壓力較小,并且不需要任何特殊的
php.ini
設(shè)置。
php://input
不能用于
enctype="multipart/form-data"。
解釋:
對(duì)于未指定
Content-Type
的POST數(shù)據(jù),則可以使用file_get_contents(“php://input”);來(lái)獲取原始數(shù)據(jù)。
事實(shí)上,用PHP接收POST的任何數(shù)據(jù)都可以使用本方法。而不用考慮Content-Type,包括
二進(jìn)制文件
流也可以。
所以用方法二是最保險(xiǎn)的方法
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
說(shuō)明:
總是產(chǎn)生
$HTTP_RAW_POST_DATA
變量包含有原始的
POST
數(shù)據(jù)。
此變量?jī)H在碰到未識(shí)別
MIME
類型的數(shù)據(jù)時(shí)產(chǎn)生。
$HTTP_RAW_POST_DATA
對(duì)于
enctype="multipart/form-data"
表單數(shù)據(jù)不可用
如果post過(guò)來(lái)的數(shù)據(jù)不是PHP能夠識(shí)別的,可以用
$GLOBALS['HTTP_RAW_POST_DATA']來(lái)接收,
比如
text/xml
或者
soap
等等
解釋:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過(guò)來(lái)的原始數(shù)據(jù)。
$_POST或
$_REQUEST
存放的是
PHP以key=value的形式格式化以后的數(shù)據(jù)。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過(guò)來(lái)的數(shù)據(jù)取決于centent-Type的設(shè)置,即POST數(shù)據(jù)時(shí)
必須顯式示指明Content-Type:
application/x-www-form-urlencoded,POST的數(shù)據(jù)才會(huì)存放到
$GLOBALS['HTTP_RAW_POST_DATA']中
大概的基本流程如下:
連接數(shù)據(jù)庫(kù),再加一個(gè)判斷。
選擇數(shù)據(jù)庫(kù)
讀取表
輸出表中數(shù)據(jù)
下面是代碼:
?php
$con = mysql_connect("localhost","root","abc123");
/* localhost 是服務(wù)器 root 是用戶名?abc123 是密碼*/?
if (!$con)
{
die("數(shù)據(jù)庫(kù)服務(wù)器連接失敗");
}
/*?這就是一個(gè)邏輯非判斷,如果錯(cuò)誤就輸出括號(hào)里的字符串 */?
@mysql_select_db("a",?$con);?
/*?選擇mysql服務(wù)器里的一個(gè)數(shù)據(jù)庫(kù),假設(shè)你的數(shù)據(jù)庫(kù)名為?a*/
$sql?=?"SELECT?*?FROM qq";?
/* 定義變量sql,?"SELECT?*?FROM?qq" 是SQL指令,表示選取表qq中的數(shù)據(jù)?*/
$result = mysql_query($sql); //執(zhí)行SQL語(yǔ)句,獲得結(jié)果集
/*下面就是選擇性的輸出打印了,由于不清楚你的具體情況給你個(gè)表格打印吧*/
//打印表格?
echo "table border=1";?
while( $row = mysql_fetch_array($result) )
/*逐行獲取結(jié)果集中的記錄,得到數(shù)組row?*/
{ ?
/*數(shù)組row的下標(biāo)對(duì)應(yīng)著數(shù)據(jù)庫(kù)中的字段值?*/
$id = $row['id'];?
$name = $row['name'];?
$sex = $row['sex'];?
echo "tr";?
echo "td$id/td";?
echo "td$name/td";?
echo "td$sex/td";?
echo "/tr";?
}?
echo "table /";
?
如果你的switch是表頭,就定義這個(gè)表頭字段,然后輸出。
$content?=?$_POST['data'];
$fp?=?fopen('/tmp/newfile.bin','w');
fwrite($fp,$content);
以上例子是在data參數(shù)上傳二進(jìn)制,并保存到/tmp/newfile.bin中,解析json用json_decode,然后把二進(jìn)制的那個(gè)值賦給content就可以