速战速决 (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 字符串与对象之间的相互转换的更多相关文章
- (转)golang获取当前时间、时间戳和时间字符串及它们之间的相互转换
原文连接: https://blog.csdn.net/skh2015java/article/details/70051512 1.获取当前时间 currentTime:=time.Now() // ...
- ajax请求(二),后台返回的JSon字符串的转换
ajax请求,json的转换 $.ajax({ url : "../folder/isExistAddFolder.do?t="+new Date(), type : 'POST' ...
- PHP如何获取Post请求中的Json字符串数据?
摘自:http://dianjingjiaoyu.blog.163.com/blog/static/18347920820114194642257/ 最近用到ext与PHP交互,ext把json数据p ...
- 【openresty】获取post请求数据FormInputNginxModule模块
关于openresty的一些介绍看这里. 首先,实验背景为openresty作为后台来处理前台post传递的数据. 在openresty内,有一个FormInputNginxModule模块,作用是解 ...
- java http请求,字节流获取百度数据
请求的地址为: http://api.map.baidu.com/place/v2/search?&q=%E9%A5%AD%E5%BA%97®ion=%E9%87%8D%E5%B ...
- Spring MVC(三)控制器获取页面请求参数以及将控制器数据传递给页面和实现重定向的方式
首先做好环境配置 在mvc.xml里进行配置 1.开启组件扫描 2.开启基于mvc的标注 3.配置试图处理器 <?xml version="1.0" encoding=&qu ...
- php curl请求和获取接口数据
curl请求和获取接口数据 class ToolModel{ /** * [http 调用接口函数] * @Author GeorgeHao * @param string $url [接口地址] * ...
- 获取【请求体】数据的3种方式(精)(文末代码) request.getInputStream() request.getInputStream() request.getReader()
application/x- www-form-urlencoded是Post请求默认的请求体内容类型,也是form表单默认的类型.Servlet API规范中对该类型的请求内容提供了request. ...
- Python Socket请求网站获取数据
Python Socket请求网站获取数据 ---阻塞 I/O ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...
随机推荐
- SQL Server 2012故障转移的looksalive check和is alive check
什么是looksalive check和is alive check SQL Server故障转移集群是建立在windows集群服务上的一种热备的高可用方案.在集群运行过程中,windows集群服务定 ...
- 备忘-Sql server Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置
select * from sysprocesses where dbid= db_id('数据库名') 通过此语句可查看目前所有的连接进程 不够了就必须设置Max Pool Size,理论最大值为3 ...
- js事件(event)的运行原理
昨天写click事件时候突然脑袋抽筋想了想浏览器是怎么执行click事件的,为什么我们可以用e或者window.event这个对象获取一些事件的属性呐?以下是我的理解.如果您有更好的理解,欢迎评论!! ...
- WCF 安全性 之 Windows
案例下载 http://download.csdn.net/detail/woxpp/4113172 服务端配置代码 <system.serviceModel> <services& ...
- Referenced file contains errors (http://www.springframework.org/schema/context). For more information, right click on the message in the Problems
spring 配置文件的DTD或schema出问题,一般两种情况: 1.当前网络环境不稳定,按住ctrl+"http://www.springframework.org/schema/con ...
- Tips for newbie to read source code
This post is first posted on my WeChat public account: GeekArtT Reading source code is always one bi ...
- Performance Monitor1:开始性能监控
Performance Monitor是Windows内置的一个可视化监控工具,能够在OS级别上实时记录系统资源的使用情况,通过收集和存储日志数据,在SQL Server发生异常时,能够还原系统当时的 ...
- Centos 源码安装zabbix 2.4.5
Zabbix简介 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统 的安全运营:并提供柔软的通知机制以让系统管 ...
- Topology and Geometry in OpenCascade-Adapters
Topology and Geometry in OpenCascade-Adapters eryar@163.com 摘要Abstract:本文简要介绍了适配器模式(adapter pattern) ...
- 【开源】OSharp3.3框架解说系列:重新开源及3.3版本新特性
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...