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

 更新时间:2014年07月22日 10:49:27   投稿:junjie  
这篇文章主要介绍了PHP中模拟处理HTTP PUT请求的例子,PUT请求会把消息本体中的消息发送到一个URL,跟POST类似,需要的朋友可以参考下

关于HTTP PUT详细介绍请参阅此文:https://www.jb51.net/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模块):

复制代码 代码如下:

<Location "/demo.php">
     RequestHeader set Content-Type foobar
</Location>

通过重置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常用算法和数据结构示例(必看篇)

    PHP常用算法和数据结构示例(必看篇)

    下面小编就为大家带来一篇PHP常用算法和数据结构示例(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • tp5框架内使用tp3.2分页的方法分析

    tp5框架内使用tp3.2分页的方法分析

    这篇文章主要介绍了tp5框架内使用tp3.2分页的方法,结合实例形式分析了thinkPHP5框架使用thinkPHP3.2版本中分页的具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • 为PHP模块添加SQL SERVER2012数据库的步骤详解

    为PHP模块添加SQL SERVER2012数据库的步骤详解

    这篇文章主要介绍了为PHP模块添加SQL SERVER2012数据库,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • laravel-admin 实现在指定的相册下添加照片

    laravel-admin 实现在指定的相册下添加照片

    今天小编就为大家分享一篇laravel-admin 实现在指定的相册下添加照片,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • thinkPHP利用ajax异步上传图片并显示、删除的示例

    thinkPHP利用ajax异步上传图片并显示、删除的示例

    这篇文章主要介绍了thinkPHP利用ajax异步上传图片并显示、删除的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • PHP实现中文转拼音的方法

    PHP实现中文转拼音的方法

    这篇文章运用简单易懂的例子给大家介绍PHP将中文转换成拼音的方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助
    2023-11-11
  • laravel框架模型中非静态方法也能静态调用的原理分析

    laravel框架模型中非静态方法也能静态调用的原理分析

    这篇文章主要介绍了laravel框架模型中非静态方法也能静态调用的原理,结合实例形式分析了laravel模型基类中使用魔术方法实现非静态方法进行静态调用的相关原理,需要的朋友可以参考下
    2019-11-11
  • ThinkPHP处理Ajax返回的方法

    ThinkPHP处理Ajax返回的方法

    这篇文章主要介绍了ThinkPHP处理Ajax返回的方法,简单讲述了在ThinkPHP中Ajax的用法及对应的处理Ajax返回值的方法,具有不错的实用价值,需要的朋友可以参考下
    2014-11-11
  • Zend Framework入门教程之Zend_Registry组件用法详解

    Zend Framework入门教程之Zend_Registry组件用法详解

    这篇文章主要介绍了Zend Framework入门教程之Zend_Registry组件用法,结合实例形式分析了Zend_Registry组件实现对象注册的设置、获取、判断、删除等操作常用技巧,需要的朋友可以参考下
    2016-12-12
  • PDO实现学生管理系统

    PDO实现学生管理系统

    这篇文章主要为大家详细介绍了PDO实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03

最新评论