[源码下载]

速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换

作者:webabcd

介绍
速战速决 之 PHP

  • 获取 http 请求数据
  • 获取 get 数据 和 post 数据
  • json 字符串与对象之间的相互转换

示例
1、获取 http 请求数据
http/http1.php

<?php
/**
* 获取 http 请求数据
*/ // 通过 $_SERVER 获取相关数据
echo "PHP_SELF : " . $_SERVER['PHP_SELF'] . "<br />";
echo "GATEWAY_INTERFACE : " . $_SERVER['GATEWAY_INTERFACE'] . "<br />";
echo "SERVER_ADDR : " . $_SERVER['SERVER_ADDR'] . "<br />";
echo "SERVER_NAME : " . $_SERVER['SERVER_NAME'] . "<br />";
echo "SERVER_SOFTWARE : " . $_SERVER['SERVER_SOFTWARE'] . "<br />";
echo "SERVER_PROTOCOL : " . $_SERVER['SERVER_PROTOCOL'] . "<br />";
echo "REQUEST_METHOD : " . $_SERVER['REQUEST_METHOD'] . "<br />";
echo "REQUEST_TIME : " . $_SERVER['REQUEST_TIME'] . "<br />";
echo "REQUEST_TIME_FLOAT : " . $_SERVER['REQUEST_TIME_FLOAT'] . "<br />";
echo "QUERY_STRING : " . htmlspecialchars($_SERVER['QUERY_STRING']) . "<br />";
echo "DOCUMENT_ROOT : " . $_SERVER['DOCUMENT_ROOT'] . "<br />";
echo "HTTP_ACCEPT : " . $_SERVER['HTTP_ACCEPT'] . "<br />";
echo "HTTP_ACCEPT_CHARSET : " . $_SERVER['HTTP_ACCEPT_CHARSET'] . "<br />";
echo "HTTP_ACCEPT_ENCODING : " . $_SERVER['HTTP_ACCEPT_ENCODING'] . "<br />";
echo "HTTP_ACCEPT_LANGUAGE : " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "<br />";
echo "HTTP_CONNECTION : " . $_SERVER['HTTP_CONNECTION'] . "<br />";
echo "HTTP_HOST : " . $_SERVER['HTTP_HOST'] . "<br />";
echo "HTTP_REFERER : " . $_SERVER['HTTP_REFERER'] . "<br />";
echo "HTTP_USER_AGENT : " . $_SERVER['HTTP_USER_AGENT'] . "<br />";
echo "HTTPS : " . $_SERVER['HTTPS'] . "<br />";
echo "REMOTE_ADDR : " . $_SERVER['REMOTE_ADDR'] . "<br />";
echo "REMOTE_HOST : " . $_SERVER['REMOTE_HOST'] . "<br />";
echo "REMOTE_PORT : " . $_SERVER['REMOTE_PORT'] . "<br />";
echo "REMOTE_USER : " . $_SERVER['REMOTE_USER'] . "<br />";
echo "REDIRECT_REMOTE_USER : " . $_SERVER['REDIRECT_REMOTE_USER'] . "<br />";
echo "SCRIPT_FILENAME : " . $_SERVER['SCRIPT_FILENAME'] . "<br />";
echo "SERVER_ADMIN : " . $_SERVER['SERVER_ADMIN'] . "<br />";
echo "SERVER_PORT : " . $_SERVER['SERVER_PORT'] . "<br />";
echo "SERVER_SIGNATURE : " . $_SERVER['SERVER_SIGNATURE'] . "<br />";
echo "PATH_TRANSLATED : " . $_SERVER['PATH_TRANSLATED'] . "<br />";
echo "SCRIPT_NAME : " . $_SERVER['SCRIPT_NAME'] . "<br />";
echo "REQUEST_URI : " . htmlspecialchars($_SERVER['REQUEST_URI']) . "<br />";
echo "PHP_AUTH_DIGEST : " . $_SERVER['PHP_AUTH_DIGEST'] . "<br />";
echo "PHP_AUTH_USER : " . $_SERVER['PHP_AUTH_USER'] . "<br />";
echo "PHP_AUTH_PW : " . $_SERVER['PHP_AUTH_PW'] . "<br />";
echo "AUTH_TYPE : " . $_SERVER['AUTH_TYPE'] . "<br />";
echo "PATH_INFO : " . $_SERVER['PATH_INFO'] . "<br />";
echo "ORIG_PATH_INFO : " . $_SERVER['ORIG_PATH_INFO'] . "<br />";

2、获取 get 数据 和 post 数据
http/http2.php

<?php
/**
* 获取 get 数据 和 post 数据
*/ // 获取 url 参数(get 数据)
$params = getQueryParams($_SERVER['QUERY_STRING']);
echo "param1: " . $params["param1"];
echo "<br />";
echo "param2: " . $params["param2"];
echo "<br />"; function getQueryParams($query)
{
$queryParts = explode('&', $query);
$params = array();
foreach ($queryParts as $param)
{
$item = explode('=', $param);
$params[$item[0]] = $item[1];
}
return $params;
} // 通过 $_POST 获取 post 数据
// 判断 $_POST["btnSubmit"] 是否存在,如果存在则表示有 post 过来的 form
if (isset($_POST["btnSubmit"]))
{
if (empty($_POST['txtUsername']))
{
echo "您没有输入用户名";
exit(0);
} echo "您的用户名: " . $_POST['txtUsername'] . "";
}
?> <form action="" method="post">
<div>姓名:</div>
<div><input type="text" id="txtUsername" name="txtUsername" value="wanglei" /></div> <div><input type="submit" name="btnSubmit" value="提交"/></div>
</form>

3、获取 get 数据 和 post 数据
encode/json.php

<?php
/**
* Created by PhpStorm.
* User: wanglei
* Date: 2015/12/30
* Time: 9:45
*/ class Name
{
public $firstName;
public $lastName;
} class Student
{
public $name; public $number;
public $date1;
public $date2;
} $jsonArray = '
[
{
"name":{"firstName":"abc", "lastName":"xyz"},
"number":1,
"date1":"2015-12-30 10:00:48",
"date2":1451440848
},
{
"name":{"firstName":"lmn", "lastName":"rst"},
"number":2,
"date1":"2015-11-22 17:13:41",
"date2":1448183621
}
]'; // 设置当前时区为东八时区(北京时区)
date_default_timezone_set("Etc/GMT-8"); // json 字符串转对象
$result = array();
$myArray = json_decode($jsonArray, true);
$myArrayCount = count($myArray);
for ($i = 0; $i < $myArrayCount; $i++)
{
$student = new Student();
$student->number = $myArray[$i]["number"];
$student->date1 = $myArray[$i]["date1"];
$student->date2 = date('Y-m-d H:i:s', $myArray[$i]["date2"]); $name = new Name();
$jsonName = $myArray[$i]["name"];
$name->firstName = $jsonName["firstName"];
$name->lastName = $jsonName["lastName"]; $student->name = $name;
$result[] = $student;
}
var_dump($result); // 对象转 json 字符串
echo json_encode($result);
echo "<br />"; echo "<br />"; // 获取当前时间的时间戳(到 1970-1-1 的秒数)
echo time();
echo "<br />"; // 获取指定时间的时间戳(到 1970-1-1 的秒数)
echo strtotime("2015-12-30 16:00:10");
echo "<br />"; // 时间戳的格式化
echo date('Y-m-d H:i:s', time());
echo "<br />"; // 时间戳的格式化
echo date('Y-m-d H:i:s', 1460969676);
echo "<br />";

OK
[源码下载]

速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换的更多相关文章

  1. (转)golang获取当前时间、时间戳和时间字符串及它们之间的相互转换

    原文连接: https://blog.csdn.net/skh2015java/article/details/70051512 1.获取当前时间 currentTime:=time.Now() // ...

  2. ajax请求(二),后台返回的JSon字符串的转换

    ajax请求,json的转换 $.ajax({ url : "../folder/isExistAddFolder.do?t="+new Date(), type : 'POST' ...

  3. PHP如何获取Post请求中的Json字符串数据?

    摘自:http://dianjingjiaoyu.blog.163.com/blog/static/18347920820114194642257/ 最近用到ext与PHP交互,ext把json数据p ...

  4. 【openresty】获取post请求数据FormInputNginxModule模块

    关于openresty的一些介绍看这里. 首先,实验背景为openresty作为后台来处理前台post传递的数据. 在openresty内,有一个FormInputNginxModule模块,作用是解 ...

  5. java http请求,字节流获取百度数据

    请求的地址为: http://api.map.baidu.com/place/v2/search?&q=%E9%A5%AD%E5%BA%97&region=%E9%87%8D%E5%B ...

  6. Spring MVC(三)控制器获取页面请求参数以及将控制器数据传递给页面和实现重定向的方式

    首先做好环境配置 在mvc.xml里进行配置 1.开启组件扫描 2.开启基于mvc的标注 3.配置试图处理器 <?xml version="1.0" encoding=&qu ...

  7. php curl请求和获取接口数据

    curl请求和获取接口数据 class ToolModel{ /** * [http 调用接口函数] * @Author GeorgeHao * @param string $url [接口地址] * ...

  8. 获取【请求体】数据的3种方式(精)(文末代码) request.getInputStream() request.getInputStream() request.getReader()

    application/x- www-form-urlencoded是Post请求默认的请求体内容类型,也是form表单默认的类型.Servlet API规范中对该类型的请求内容提供了request. ...

  9. Python Socket请求网站获取数据

     Python Socket请求网站获取数据 ---阻塞 I/O     ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...

随机推荐

  1. HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)

    这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...

  2. [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图

    [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...

  3. JS实战 · 级联菜单选择省份和城市(两种)

    DOM编程步骤.思路 1.定义界面:      通过html标签将数据进行封装: 2.定义一些静态样式:      利用css: 3.需要动态地完成的和用户的交互:      a:明确事件源:     ...

  4. Jmeter 使用Jmeter与Badboy进行压力测试

    1. 介绍 Badboy是一个录制请求的工具,这里用它来生成文件给JMeter用. JMeter是一个用java写的开源的性能测试工具,用于模拟在服务器.网络或者其他对象上附加高负载以测试他们提供服务 ...

  5. android 获取屏幕宽度和高度

    // 获取屏幕宽高(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480p ...

  6. 在drawable 画胶囊状

    <solid android:color="@color/colorAccent"></solid> <corners android:radius= ...

  7. PowerDesigner成功生成PDM进行check model后的错误提示解决途径

    1.existence of reference join------->缺少主键; 2.constraint name uniquesness-------->关联约束重名(refere ...

  8. C语言的标准输入输出

    1. 标准输入输出 标准输入.输出主要由缓冲区和操作方法两部分组.缓冲区实际上可以看做内存中的字符串数组,而操作方法主要是指printf.scanf.puts.gets,getcha.putcahr等 ...

  9. Redis在windows环境下ThinkPHP的安装和使用

    1.Redis概述: 2.Redis在windows环境下的安装: 下载地址:https://github.com/dmajkic/redis/downloads,选取其中一个zip压缩包:

  10. Android 圆形头像 自己动手

    圆形头像DIY 现在大部分app使用的都是圆形头像,网上开源的也很多,但是有没有考虑过DIY圆形头像呢?下面就自己实现一个,先看下demo展示 第一步:原理解释(图片很丑,原理很真) 1.画外框圆形, ...