当前位置:  编程技术>php

PHP中模拟处理HTTP PUT请求的例子

    来源: 互联网  发布时间:2014-08-26

    本文导语:  关于HTTP PUT详细介绍请参阅此文:http://www./article/52515.htm。 PHP里有$_GET,$_POST,但是没有$_PUT,所以如果需要使用它的话,则你不得不自己模拟一下: 代码如下:  $_PUT = array(); if ('PUT' == $_SERVER['REQUEST_METHOD']) {      parse_str(fil...

关于HTTP PUT详细介绍请参阅此文:http://www./article/52515.htm。

PHP里有$_GET,$_POST,但是没有$_PUT,所以如果需要使用它的话,则你不得不自己模拟一下:

代码如下:

 $_PUT = array();
if ('PUT' == $_SERVER['REQUEST_METHOD']) {
     parse_str(file_get_contents('php://input'), $_PUT);
 }

通过php://input得到的数据是raw data,所以需要用parse_str解析一下。

不过需要说明的是,当表单是enctype="multipart/form-data"类型的时候(就是上传文件那种类型),这种方法是无效的(此时 php://input为空),一旦PHP发现请求的Content-Type是multipart/form-data,就会无条件的代你处理表单数据,然后保存到$_FILES里,此时无法得到raw data,只能用一些偏门方法

以apache为例,修改httpd.conf(为了使用RequestHeader语法,请先激活header模块):

代码如下:


     RequestHeader set Content-Type foobar


通过重置Content-Type请求头为foobar(只要不是multipart/form-data即可),此时php://input就有数据了,不过原本应有的$_FILES数据却不存在了,所以基本上只有演示上的意义,如果想得到raw data,只能自己根据数据生成,在PEAR里有类似的实现:HTTP_Request2_MultipartBody。

浏览器一般只允许使用GET/POST方法,虽然可以通过JS来发送PUT方法,但是还得编写代码,相对而言,使用命令行下的CURL命令则显得方便很多,在开发测试时很有用,所以学习一下还是必要的:

代码如下:

curl -X PUT http://www.domain.com/demo.php -d "id=1" -d "title=a"

这样就会通过PUT方法发送id, title数据,测试时demo.php的代码就类似上面的php://input。

    
 
 

您可能感兴趣的文章:

  • php函数get_headers是HEAD请求或GET请求
  • php 异步请求文件实现多线程的代码
  • php使用请求头信息获取远程图片大小
  • php表单请求获得数据求和示例
  • php查看请求头信息获取远程图片大小的方法分享
  • PHP请求http(file_get_content)示例
  • PHP实现取得HTTP请求的原文
  • php发送post请求函数分享
  • PHP curl修改网站请求头
  • PHP开发框架kohana中处理ajax请求的例子
  • PHP多线程异步请求的3种实现方法
  • 实现PHP多线程异步请求的3种方法
  • php发送post请求的三种方法示例
  • php获取网页请求状态示例分享
  • php如何模拟处理http put请求?实例教程
  • php处理restful请求的路由类分享
  • php发送post请求的三种方法
  • php实例获取网页请求状态
  • php发送get、post请求的6种方法简明总结
  • php获取网页请求状态程序示例
  • Php计算时间差 php日期转换的例子
  • php递归函数小例子
  • PHP数据流应用的简单例子
  • php递归创建目录小例子
  • php水仙花数的小例子
  • php代码审计比较有意思的例子
  • php动态生成函数的例子
  • php转换html标签小例子
  • php汉字转码的例子
  • php输入流php://input发送图片流到服务器的例子
  • php数组与对象转换小例子
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
  • PHP图像处理库 ImageWorkshop
  • PHP图像处理库 Imagine
  • php 下载文件名带空格怎么处理
  • PHP支付处理库 Omnipay
  • PHP的Zip压缩包处理类 TbsZip
  • PHP图像处理模块 MagickWand
  • PHP图像处理库 Zebra_Image
  • windows下配置apache+php+mysql时出现问题的处理方法
  • PHP配置文件处理类代码
  • nginx:413 Request Entity Too Large的处理办法--修改 PHP上传文件大小
  • php事务处理实例详解
  • php异常处理使用示例
  • php5.2 Json不能正确处理中文、GB编码的解决方法
  • PHP按行读取、处理较大CSV文件的代码实例
  • PHP中使用asort进行中文排序失效的问题处理
  • PHP按行读取、处理较大CSV文件的例子
  • php中json_encode处理gbk与gb2312中文乱码问题的解决方法
  • PHP处理SQL脚本文件导入到MySQL的代码实例
  • 分享一个php 的异常处理程序
  • php日期加减处理函数示例
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3