三中接受方式:
$_GET ? ?//get过来的数据
$_POST ?//post过来的数据
file_get_contents("php://input") ? //接口过来的xml等字符串数据用这个接
这三个方法足以接受任何数据了,具体你还要百度一下用法
php
//error_reporting(E_ALL);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "OK. \n";
}
echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if($result === false) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
echo "OK \n";
$in = "HEAD / http/1.1\r\n";
$in .= "HOST: localhost \r\n";
$in .= "Connection: close\r\n\r\n";
$out = "";
echo "sending http head request ...";
socket_write($socket, $in, strlen($in));
echo "OK\n";
echo "Reading response:\n\n";
echo $out;
//echo "closeing socket..";
//socket_close($socket);
//echo "ok .\n\n";
error_reporting(E_ALL);
set_time_limit(0);
//ob_implicit_flush();
//创建端口
if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n";
die;
//绑定
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";
//监听
do {
//得到一个链接
if (($msgsock = socket_accept($sock)) === false) {
echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "\n"; break;
$msg = "server send:welcome!";
socket_write($msgsock, $msg, strlen($msg));
echo 'read client message\n';
$talkback = "received message:$buf\n";
echo $talkback;
if (false === socket_write($msgsock, $talkback, strlen($talkback))) {
echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."\n";
echo 'send success';
//socket_close($msgsock);
} while(true);
//关闭socket
socket_close($sock);
$_REQUEST 包含get和post的数据
$_POST post的数据
$_GET get的数据
PHP 可以通过POST、GET方法获取到表单提交的数据
获取到的POST、GET是数组形式的值,需要通过键值来详细获取相应的值
比如: index.php 页面
下面是POST方法
form name="form1" method="post" action="index.php"
input type="text" name="contents" value=""
input type="submit" value="提交"
/form
//获取表单提交的数据
$contents = $_POST['contents'];
echo $contents;
也可以是下面是GET方法
form name="form1" method="get" action="index.php"
$contents = $_GET['contents'];
POST相对于GET方法,更好一些,可以提交大量数据,以及更安全些.
方法1、最常见的方法是:$_POST['fieldname'];
说明:只能接收Content-Type:
application/x-www-form-urlencoded提交的数据
解释:也就是表单POST过来的数据
说明:
允许读取
POST
的
原始数据
.
和
$HTTP_RAW_POST_DATA
比起来,它给内存带来的压力较小,并且不需要任何特殊的
php.ini
设置.
php://input
不能用于
enctype="multipart/form-data".
解释:
对于未指定
Content-Type
的POST数据,则可以使用file_get_contents("php://input");来获取原始数据.
事实上,用PHP接收POST的任何数据都可以使用本方法.而不用考虑Content-Type,包括
二进制文件
流也可以.
所以用方法二是最保险的方法
总是产生
变量包含有原始的
数据.
此变量仅在碰到未识别
MIME
类型的数据时产生.
对于
enctype="multipart/form-data"
表单数据不可用
如果post过来的数据不是PHP能够识别的,可以用
$GLOBALS['HTTP_RAW_POST_DATA']来接收,
比如
text/xml
或者
soap
等等
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据.
$_POST或
$_REQUEST
存放的是
PHP以key=value的形式格式化以后的数据.
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时
必须显式示指明Content-Type:
application/x-www-form-urlencoded,POST的数据才会存放到
$GLOBALS['HTTP_RAW_POST_DATA']中
form表单demo:task.html
fieldset id="setFiled"
legend发布任务/legend
form action="registr.php" method="post" id="steForm"
label任务类型:/labelbr
input type="text" name="type"? id="taskType" placeholder="请选择任务类型"/br
input type="text" name="type"? id="taskType" placeholder="请选择任务类型"/br
input type="text" name="type"? id="taskType" placeholder="请选择任务类型"/br
label酬nbsp;nbsp;金:/labelbr
input type="number" name="money" id="forMoney" min="1" max="1000"/label元/labelbr
label截止时间:/labelbr
input type="datetime" name="time" id="timeSubmit"/span data-year="" data-month="" data-date="" id="showDate"/spanbr
label详细描述:/labelbr
扩展资料
php接收POST数据的三种方式
①.、$_POST 方式接受数据
$_POST 方式是由通过HTTP的POST方法传递过来的数据组成的数组,是一个自动全局变量.
注:只能接收Content-Type:application/x-www-form-urlencode提交的数据.也就是只能接收表单过来的数据.
如果访问原始POST数据不是php能够识别的文档类型,比如:text/xml 或者soap等等,可以用$GLOBLES['HTTP_RAW_POST_DATA']来接收,$HTTP_RAW_POST_DATA变量包含有原始POST数据.此变量仅在碰到未识别的MIME数据时产生.
注:$HTTP_RAW_POST_DATA对于enctype="multipart/form-data"表单数据不可用,也就是说使用$HTTP_RAW_POST_DATA无法接受网页表单post过来的数据.
如果访问原始POST数据,更好的方法是使用file_get_content("php://input");对于未指定Content-Type的POST数据,可以使用该方法读取POST原始数据,包括二进制流也可以和$HTTP_RAW_POST_DATA比起来.它带来的生存眼里更小,并且不需要任何特殊的php.ini设置.
注:php://input不能用于 enctype="multipart/form-data"
例如:$postStr = file_get_contents("php://input"); //获取POST数据
以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!