广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP中php://input怎么用
  • 800
分享到

PHP中php://input怎么用

PHP输入流 2015-01-18 11:01:51 800人浏览 绘本
摘要

本文操作环境:windows7系统,PHP7.1版,Dell G3电脑。PHP中php://input怎么用?对于php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述。“php://input allows you

本文操作环境:windows7系统,PHP7.1版,Dell G3电脑。

PHP中php://input怎么用?

对于php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述。
“php://input allows you to read raw POST data. It is a less memory intensive alternative to$Http_RAW_POST_DATA and does not need any special php.ini directives. php://input is not available with enctype=”multipart/fORM-data”.

翻译过来,是这样:
“php://input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特 殊的php.ini设置。php://input不能用于enctype=multipart/form-data”
总结如下:

1)、Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP才会将http请求数据包中相应的数据填入全局变量$_POST

2)、PHP不能识别的Content-Type类型的时候,会将http请求包中相应的数据填入变量$HTTP_RAW_POST_DATA

3)、只有Coentent-Type为multipart/form-data的时候,PHP不会将http请求数据包中的相应数据填入php://input,否则其它情况都会。填入的长度,由Coentent-Length指定。

4)、只有Content-Type为application/x-www-data-urlencoded时,php://input数据才跟$_POST数据相一致。

5)、php://input数据总是跟$HTTP_RAW_POST_DATA相同,但是php://input比$HTTP_RAW_POST_DATA更凑效,且不需要特殊设置php.ini

6)、PHP会将PATH字段的query_path部分,填入全局变量$_GET。通常情况下,GET方法提交的http请求,body为空。

总结起来就是,在用$_POST获取不到由APP或者一些接口的回调数据时,就用php://input试试

1、 接受xml数据

//发送xml数据
$xml = '<xml>xmldata</xml>';//要发送的xml 
$url = 'http://localhost/test/getXML.php';//接收XML地址 
$header = 'Content-type: text/xml';//定义content-type为xml 
$ch = curl_init(); //初始化curl 
curl_setopt($ch, CURLOPT_URL, $url);//设置链接 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否返回信息 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置HTTP头 
curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);//POST数据 
$response = curl_exec($ch);//接收返回信息 
if(curl_errno($ch)){//出错则显示错误信息 
print curl_error($ch); 
} 
curl_close($ch); //关闭curl链接 
echo $response;//显示返回信息 


// php用file_get_contents("php://input")或者$HTTP_RAW_POST_DATA可以接收xml数据
$xmldata = file_get_contents("php://input"); 
$data = (array)simplexml_load_string($xmldata);

2、手机上传图片到服务器的小程序
发送

//@file phpinput_post.php 
$data=file_get_contents('btn.png'); 
$http_entity_body = $data; 
$http_entity_type = 'application/x-www-form-urlencoded'; 
$http_entity_length = strlen($http_entity_body); 
$host = '127.0.0.1'; 
$port = 80; 
$path = '/image.php'; 
$fp = fsockopen($host, $port, $error_no, $error_desc, 30); 
if ($fp){ 
fputs($fp, "POST {$path} HTTP/1.1\r\n"); 
fputs($fp, "Host: {$host}\r\n"); 
fputs($fp, "Content-Type: {$http_entity_type}\r\n"); 
fputs($fp, "Content-Length: {$http_entity_length}\r\n"); 
fputs($fp, "Connection: close\r\n\r\n"); 
fputs($fp, $http_entity_body . "\r\n\r\n"); 

while (!feof($fp)) { 
 $d .= fgets($fp, 4096); 
} 
fclose($fp); 
echo $d; 
}

接收


error_reporting(E_ALL);

function get_contents() {
 $xmlstr= file_get_contents("php://input");
 $filename=file_put_contentsxmltime().'.png';
 if(($filename,$str)){
 echo 'success';
 }else{
 echo 'failed';
 } 
  }
get_contents();

3:获取HTTP请求原文


function get_http_raw(){
 $raw = '';
 // (1) 请求行 
 $raw .= $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . ' ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n";
 // (2) 请求Headers 
 foreach ($_SERVER as $key => $value) {
 if (substr($key , 0 , 5) === 'HTTP_') {
  $key = substr($key , 5);
  $key = str_replace('_' , '-' , $key);
  $raw .= $key . ': ' . $value . "\r\n";
 }
 }
 // (3) 空行 
 $raw .= "\r\n";
 // (4) 请求Body 
 $raw .= file_get_contents('php://input');
 return $raw;
}

以上就是针对PHP输入流举的三个小栗子,目的在于帮助大家更准确的理解PHP输入流,希望大家有所收获。

推荐学习:《PHP视频教程

以上就是PHP中php://input怎么用的详细内容,更多请关注编程界其它相关文章!

--结束END--

本文标题: PHP中php://input怎么用

本文链接: https://www.lsjlt.com/news/924.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP中php://input怎么用
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。PHP中php://input怎么用?对于php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述。“php://input allows you ...
    99+
    2015-01-18
    PHP 输入流
  • PHP中php://input如何使用
    这篇文章主要讲解了“PHP中php://input如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中php://input如何使用”吧!php://input可以读取没有处理过的...
    99+
    2023-06-22
  • php 怎么设置input只读
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php 怎么设置input只读?详解PHP中的 input属性(隐藏 只读 限制)隐藏<input type="hidden"> 只读 &...
    99+
    2018-05-04
    php input 只读属性
  • python中的input()怎么使用
    这篇文章主要介绍了python中的input()怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中的input()怎么使用文章都会有所收获,下面我们一起来看看吧。input() 的用法Pyth...
    99+
    2023-06-30
  • fileclude(文件包含漏洞及php://input、php://filter的使用)
    先介绍一些知识 文件包含漏洞 和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。 什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时...
    99+
    2023-09-02
    php 文件包含漏洞 PHP伪协议 web 网络安全
  • php给input赋值的方法是什么
    在PHP中,给input赋值有多种方法,取决于你是在服务器端还是在客户端进行操作。1. 在服务器端给input赋值:你可以使用PHP...
    99+
    2023-09-27
    php
  • matlab中input函数怎么使用
    在MATLAB中,可以使用`input`函数来获取用户的输入。`input`函数的基本语法是:```user_input = inp...
    99+
    2023-08-23
    matlab input
  • Linux input怎么使用
    本篇内容主要讲解“Linux input怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux input怎么使用”吧!输入设备都有共性:中断驱动+字符IO,基于分层的思想,Linux...
    99+
    2023-06-16
  • php获取input内容的方法是什么
    在PHP中,可以使用`$_POST`或`$_GET`全局变量来获取input内容。如果表单的`method`属性设置为`POST`,...
    99+
    2023-09-27
    php
  • openstack中php sdk php-opencloud怎么用
    这篇文章主要介绍了openstack中php sdk php-opencloud怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。&nbs...
    99+
    2022-10-19
    php api
  • HTML 5中怎么使用 Input 类型
    这篇文章给大家介绍HTML 5中怎么使用 Input 类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。EMAIL<input type="email&quo...
    99+
    2022-10-19
    html 5 input
  • html5中input新属性range怎么用
    小编给大家分享一下html5中input新属性range怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:<i...
    99+
    2022-10-19
    html5 input range
  • java中怎么用input输入内容
    在Java中,可以使用Scanner类来从控制台输入内容。首先,在你的Java文件中,需要导入Scanner类:```javaimp...
    99+
    2023-09-20
    java
  • js修改input的值php提交上来没改怎么解决
    本文小编为大家详细介绍“js修改input的值php提交上来没改怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“js修改input的值php提交上来没改怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-05
  • php中case怎么用
    这篇文章将为大家详细讲解有关php中case怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php中case是在switch语句中使用,其使用语法如“switch (n){case label1:br...
    99+
    2023-06-22
  • php中$_SERVER怎么用
    这篇文章主要为大家展示了“php中$_SERVER怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中$_SERVER怎么用”这篇文章吧。为了我们了解这个数组,我们来看一个小栗子。<...
    99+
    2023-06-20
  • php中continue怎么用
    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑continue 是用在循环结构中的,它可以控制程序放弃本次循环中 continue 语句之后的代码并进行下一次循环。continue 本身并不跳出循环结构,只是放弃这...
    99+
    2017-09-06
    php continue
  • PHP中mysqli_more_results怎么用
    这篇文章主要介绍PHP中mysqli_more_results怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!定义和用法mysqli_more_results - 检查...
    99+
    2022-10-19
    php mysqi
  • php中list怎么用
    这篇文章将为大家详细讲解有关php中list怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。list妙用//妙用一 list($a,$b) = [...
    99+
    2022-10-19
    php list
  • php中private怎么用
    这篇文章将为大家详细讲解有关php中private怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在PHP中,private是一个访问修饰符,用于限制修饰成员的可访问性,表示的意思是“私有的”,也就是...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作