php中$_GET,$_POST,$_REQUEST和$_SERVER的用法

发布时间:2020-09-09编辑:脚本学堂
本文介绍下,php语言中$_GET,$_POST,$_REQUEST和$_SERVER的用法,有需要的朋友,可以作个参考。

分享下$_GET,$_POST,$_REQUEST和$_SERVER的用法,以及parse_str的用法。
首先,学习下$_GET、$_POST的用法。
$_GET变量获取通过get方式提交过来的数据。
$_POST 变量获取通过post方式提交过来的数据。
注意:使用的键名都是表单的name属性的值。

例如:
 

复制代码 代码示例:
<form action="action.php" method="get"> 
<input type="textbox" name="xingming" value=""> 
<input type="textbox" name="age" value=""> 
<input type="submit" value="get"> 
</form> 
 
<form action="action.php" method="post"> 
<input type="textbox" name="xingming" value=""> 
<input type="textbox" name="age" value=""> 
<input type="submit" value="post"> 
</form> 
 
<?php 
echo $_GET['xingming']."<br>"; 
echo $_GET['age']."<br>"; 
echo $_POST['xingming']."<br>"; 
echo $_POST['age']."<br>"; 
?>  
 

$_REQUEST的官方说明:
$_REQUEST — HTTP Request 变量默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。
在不关心是get过来的还是post,总之要取得某一个键的值,就用$_REQUEST即可。
不过$_REQUEST速度会比$_GET,$_POST稍慢点。
通过$_SERVER获取服务器端信息
$_SERVER是一个数组,包含了headers, paths, script locations等多种信息。早期的php版本使用$HTTP_server_VARS数组,现在已经弃用了。
不同的服务器$_SERVER的信息也不一定相同的。通常的用法如下:
 

复制代码 代码示例:
echo $_SERVER['SERVER_ADDR'];
echo $_SERVER['QUERY_STRING'];
 

比较常用的获取QUERY_STRING的方法,通过$_SERVER['QUERY_STRING']得到的是诸如name=mike&age=30这样的。要把这种格式的值转成变量,PHP中有个方法parse_str,可以实现这个功能。
官方的示例:
 

复制代码 代码示例:
<?php 
$str = "first=value&arr[]=foo+bar&arr[]=baz"; 
parse_str($str); 
echo $first;  // value 
echo $arr[0]; // foo bar 
echo $arr[1]; // baz 
parse_str($str, $output); 
echo $output['first'];  // value 
echo $output['arr'][0]; // foo bar 
echo $output['arr'][1]; // baz 
?> 

在本地环境通过代码:
 

复制代码 代码示例:
echo "";  
var_dump($_SERVER);  
echo "";
 

用带格式的数据打印出数组内容:
 

array(31) {
  ["HTTP_ACCEPT"]=>
  string(3) "*/*"
  ["HTTP_ACCEPT_LANGUAGE"]=>
  string(5) "zh-CN"
  ["HTTP_USER_AGENT"]=>
  string(205) "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2; Avant Browser)"
  ["HTTP_ACCEPT_ENCODING"]=>
  string(13) "gzip, deflate"
  ["HTTP_HOST"]=>
  string(14) "localhost:8080"
  ["HTTP_CONNECTION"]=>
  string(10) "Keep-Alive"
  ["HTTP_COOKIE"]=>
  string(154) "codehilite=IsPre=True&IsShowRowNumber=False&IsUseBR=False&Language=Csharp; iGHA2Cas=key=s8hoPBw6cWYHJ34NowHt%2f77gsEiQ9U9K0dDGPYjwLCFzQbqnNjlYMnUw9OOCF68u"
  ["PATH"]=>
  string(540) "C:Program Files (x86)ActiveState Komodo IDE 7;C:Program Files (x86)ActiveState Komodo Edit 7;E:appAdministratorproduct11.1.0client_1bin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)Microsoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100DTSBinn;C:Program FilesTortoiseSVNbin;C:Program Files (x86)Microsoft ASP.NETASP.NET Web Pagesv1.0;d:php-5.4.4-Win32-VC9-x86;"
  ["SystemRoot"]=>
  string(10) "C:Windows"
  ["COMSPEC"]=>
  string(27) "C:Windowssystem32cmd.exe"
  ["PATHEXT"]=>
  string(53) ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
  ["WINDIR"]=>
  string(10) "C:Windows"
  ["SERVER_SIGNATURE"]=>
  string(0) ""
  ["SERVER_SOFTWARE"]=>
  string(31) "Apache/2.2.22 (Win32) PHP/5.4.4"
  ["SERVER_NAME"]=>
  string(9) "localhost"
  ["SERVER_ADDR"]=>
  string(9) "127.0.0.1"
  ["SERVER_PORT"]=>
  string(4) "8080"
  ["REMOTE_ADDR"]=>
  string(9) "127.0.0.1"
  ["DOCUMENT_ROOT"]=>
  string(13) "D:/phpwwwroot"
  ["SERVER_ADMIN"]=>
  string(11) "dds@wwd.com"
  ["SCRIPT_FILENAME"]=>
  string(29) "D:/phpwwwroot/RecJP/test2.php"
  ["REMOTE_PORT"]=>
  string(5) "23827"
  ["GATEWAY_INTERFACE"]=>
  string(7) "CGI/1.1"
  ["SERVER_PROTOCOL"]=>
  string(8) "HTTP/1.1"
  ["REQUEST_METHOD"]=>
  string(3) "GET"
  ["QUERY_STRING"]=>
  string(0) ""
  ["REQUEST_URI"]=>
  string(16) "/RecJP/test2.php"
  ["SCRIPT_NAME"]=>
  string(16) "/RecJP/test2.php"
  ["PHP_SELF"]=>
  string(16) "/RecJP/test2.php"
  ["REQUEST_TIME_FLOAT"]=>
  float(1351577790572)
  ["REQUEST_TIME"]=>
  int(-1336907668)
}