新聞中心
php如何接收別的服務(wù)器post過來(lái)的數(shù)據(jù) - 技術(shù)問答
通常情況下用戶使用瀏覽器網(wǎng)頁(yè)表單向服務(wù)器post提交數(shù)據(jù),我們使用PHP的$_POST接收用戶POST到服務(wù)器的數(shù)據(jù),并進(jìn)行適當(dāng)?shù)奶幚?。但有些情況下,如用戶使用客戶端軟件向服務(wù)端php程序發(fā)送post數(shù)據(jù),而不能用$_POST來(lái)識(shí)別,那又該如何處理呢?
創(chuàng)新互聯(lián)是一家專業(yè)提供興城企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、H5建站、小程序制作等業(yè)務(wù)。10年已為興城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
我們介紹php接受post數(shù)據(jù)的三種方式:
1.$_POST方式接收數(shù)據(jù)
$_POST方式是通過 HTTP POST 方法傳遞的變量組成的數(shù)組,是自動(dòng)全局變量。如使用$_POST[‘name’]就可以接收到網(wǎng)頁(yè)表單以及網(wǎng)頁(yè)異步方式post過來(lái)的數(shù)據(jù),
即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數(shù)據(jù),也就是表單POST過來(lái)的數(shù)據(jù)。
2.$GLOBALS[‘HTTP_RAW_POST_DATA’]方式接收數(shù)據(jù)
但$GLOBALS[‘HTTP_RAW_POST_DATA’]中是否保存POST過來(lái)的數(shù)據(jù)取決于centent-Type的設(shè)置,只有在PHP在無(wú)法識(shí)別的Content-Type的情況下,才會(huì)將POST過來(lái)的數(shù)據(jù)原樣地填入變量$GLOBALS[‘HTTP_RAW_POST_DATA’]中,像Content-Type=application/x-www-form-urlencoded時(shí),該變量是空的。
另外,它同樣無(wú)法讀取Content-Type為multipart/form-data的POST數(shù)據(jù),也需要設(shè)置php.ini中的always_populate_raw_post_data值為On,PHP才會(huì)總把POST數(shù)據(jù)填入變量$http_raw_post_data。
3.php://input方式接收數(shù)據(jù)
如果訪問原始 POST 數(shù)據(jù)的更好方法是 php://input。php://input 允許讀取 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)制文件流也可以。php://input讀取不到$_GET數(shù)據(jù)。是因?yàn)?
PHP怎么接收數(shù)據(jù)
三中接受方式:
$_GET ? ?//get過來(lái)的數(shù)據(jù)
$_POST ?//post過來(lái)的數(shù)據(jù)
file_get_contents("php://input") ? //接口過來(lái)的xml等字符串?dāng)?shù)據(jù)用這個(gè)接
這三個(gè)方法足以接受任何數(shù)據(jù)了,具體你還要百度一下用法
php如何發(fā)送和接收J(rèn)SON數(shù)據(jù)
對(duì)于json,PHP有對(duì)應(yīng)的方法進(jìn)行操作。
一般而言,json會(huì)以字符串形式傳給PHP腳本,一般都是放在$_POST里面,
14
?php
// 接收
$json_parameter = $_POST['json_str'];
// 處理, 變成數(shù)組
$array = json_decode($json_parameter);
// PHP 把數(shù)組數(shù)據(jù)變成json格式字符串,發(fā)給頁(yè)面
$demo = array(
'key' = 'value',
'key2' = 'value2'
);
$demo_json = json_encode($demo); // 格式是{"key":"value","key2":"value2"}
echo $demo_json;
php怎么從表單接收數(shù)據(jù)
PHP 可以通過POST、GET方法獲取到表單提交的數(shù)據(jù)
獲取到的POST、GET是數(shù)組形式的值,需要通過鍵值來(lái)詳細(xì)獲取相應(yīng)的值
比如: index.php 頁(yè)面
下面是POST方法
form name="form1" method="post" action="index.php"
input type="text" name="contents" value=""
input type="submit" value="提交"
/form
?php
//獲取表單提交的數(shù)據(jù)
$contents = $_POST['contents'];
echo $contents;
?
也可以是下面是GET方法
form name="form1" method="get" action="index.php"
input type="text" name="contents" value=""
input type="submit" value="提交"
/form
?php
//獲取表單提交的數(shù)據(jù)
$contents = $_GET['contents'];
echo $contents;
?
POST相對(duì)于GET方法,更好一些,可以提交大量數(shù)據(jù),以及更安全些。
PHP如何接收動(dòng)態(tài)數(shù)據(jù)保存并實(shí)時(shí)顯示到網(wǎng)頁(yè)上?
頭部加上超時(shí)控制,但對(duì)于很多服務(wù)器無(wú)效,因?yàn)榉?wù)器輸出超時(shí)很多在服務(wù)器控制,所以建議用cmd腳本方式運(yùn)行此程序:
?php
set_time_limit(0); //禁用腳本超時(shí)
//?Create?the?socket?and?connect
$socket?=?socket_create(AF_INET,?SOCK_STREAM,?SOL_TCP);
$connection?=?socket_connect($socket,'116。236。128。220',?14580);
//?Write?some?test?data?to?our?socket
if(!socket_write($socket,?"user?NoCall?pass?-1?vers?test?1.0?filter?b/B*?\r\n"))
{
echo("pWrite?failed/p");
}
if(!file_exists('socket_log.html')){
file_put_contents('socket_log.html',?'script
var?xx?=?setInterval(function(){ //每5秒刷新一次頁(yè)面
window.location.reload();
},?5000);
/script');
}
//?Read?any?response?from?the?socket
while($buffer?=?socket_read($socket,?64,?PHP_NORMAL_READ))
{
echo?json_encode($buffer);?//轉(zhuǎn)換為json數(shù)據(jù)輸出
//記入文件
file_put_contents('socket_log.html',?json_encode($buffer),?FILE_APPEND);
}
echo("pDone?Reading?from?Socket/p");
使用方法:用命令行方式運(yùn)行此腳本
php?script.php
腳本會(huì)一直運(yùn)行到接收數(shù)據(jù)結(jié)束,并持續(xù)將收到的數(shù)據(jù)寫入socket_log.html文件。
在瀏覽器打開socket_log.html頁(yè)面,此頁(yè)面會(huì)自動(dòng)每5秒刷新一次,來(lái)顯示最新的數(shù)據(jù)。
確保程序有權(quán)限創(chuàng)建及寫入socket_log.html文件
PHP 關(guān)于接收接口傳遞數(shù)據(jù)的問題。。
第一個(gè)字母表示類型 count表示ID數(shù)量 / 隔開 ild,ild,ild來(lái)記錄數(shù)據(jù)(我是按照你的意思來(lái))
比方
i5/1,2,3,4,5
類型為int 一共5個(gè) 分別1,2,3,4,5
其實(shí)有必要么。。。直接i:1,2,3,4,5不就行了
不一樣的話這樣寫 i:1,2,3|s:4,5,6
懂了嗎?
網(wǎng)站名稱:有人物聯(lián)網(wǎng)php數(shù)據(jù)接收,有人物聯(lián)網(wǎng)php數(shù)據(jù)接收嗎
本文URL:http://www.dlmjj.cn/article/dsijgpg.html