PHP学习:$_GET,$_POST,$_REQUEST和$_SERVER的一些用法,以及parse_str方法

简介:

$_GET变量获取通过get方式提交过来的数据,$_POST 变量获取通过post方式提交过来的数据。注意使用的键名都是表单的name属性的值。

 
  1. <form action="action.php" method="get">  
  2. <input type="textbox" name="xingming" value="">  
  3. <input type="textbox" name="age" value="">  
  4. <input type="submit" value="get">  
  5. </form>  
  6.  
  7. <form action="action.php" method="post">  
  8. <input type="textbox" name="xingming" value="">  
  9. <input type="textbox" name="age" value="">  
  10. <input type="submit" value="post">  
  11. </form>  
  12.  
  13. <?php  
  14. echo $_GET['xingming']."<br>";  
  15. echo $_GET['age']."<br>";  
  16. echo $_POST['xingming']."<br>";  
  17. echo $_POST['age']."<br>";  
  18. ?>   

$_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,可以实现这个功能。

官方的示例:

 
  1. <?php  
  2. $str = "first=value&arr[]=foo+bar&arr[]=baz";  
  3. parse_str($str);  
  4. echo $first;  // value  
  5. echo $arr[0]; // foo bar  
  6. echo $arr[1]; // baz  
  7. parse_str($str$output);  
  8. echo $output['first'];  // value  
  9. echo $output['arr'][0]; // foo bar  
  10. echo $output['arr'][1]; // baz  
  11. ?>  

下面是在本地环境通过代码:

 
  1. echo "";   
  2. var_dump($_SERVER);   
  3. echo ""

很有格式的把这个数组完整的打印出来。31个。

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:\app\Administrator\product\11.1.0\client_1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;d:\php-5.4.4-Win32-VC9-x86\;"
  ["SystemRoot"]=>
  string(10) "C:\Windows"
  ["COMSPEC"]=>
  string(27) "C:\Windows\system32\cmd.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)
}















本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/1043326,如需转载请自行联系原作者


相关文章
|
3月前
|
SQL 关系型数据库 MySQL
如何学习PHP编程?
【10月更文挑战第2天】如何学习PHP编程?
54 9
|
2月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
82 4
|
2月前
|
PHP
PHP的pcntl多进程用法实例
PHP使用PCNTL系列的函数也能做到多进程处理一个事务。
39 12
|
2月前
|
JSON PHP 数据格式
PHP解析配置文件的常用方法
INI文件是最常见的配置文件格式之一。
61 12
|
4月前
|
Java PHP 数据安全/隐私保护
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
本文详细介绍了PHP面向对象编程的一系列核心概念和用法,包括构造函数、析构函数、继承、方法重写、访问控制、接口、抽象类、静态成员、final关键字、以及this、self、parent这三个关键字的异同和作用。通过具体示例代码,展示了如何在PHP中使用这些面向对象的特性,以及它们在实际开发中的应用。
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
|
4月前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入探索与实践在软件开发的广袤天地中,PHP以其独特的魅力和强大的功能,成为无数开发者手中的得力工具。而在这条充满挑战与机遇的征途上,设计模式犹如一盏明灯,指引着我们穿越代码的迷雾,编写出更加高效、灵活且易于维护的程序。今天,就让我们聚焦于设计模式中的璀璨明珠——策略模式,深入探讨其在PHP中的实现方法及其实际应用价值。
策略模式,这一设计模式的核心在于它为软件设计带来了一种全新的视角和方法。它允许我们在运行时根据不同情况选择最适合的解决方案,从而极大地提高了程序的灵活性和可扩展性。在PHP这门广泛应用的编程语言中,策略模式同样大放异彩,为开发者们提供了丰富的创作空间。本文将从策略模式的基本概念入手,逐步深入到PHP中的实现细节,并通过一个具体的实例来展示其在实际项目中的应用效果。我们还将探讨策略模式的优势以及在实际应用中可能遇到的挑战和解决方案,为PHP开发者提供一份宝贵的参考。
|
4月前
|
IDE 安全 网络安全
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
262 4
|
4月前
|
PHP UED 开发者
PHP中处理异常的现代方法
【9月更文挑战第26天】在PHP的世界里,异常处理是代码健壮性的守护神。本文将深入浅出地探讨如何在PHP项目中优雅地处理异常,从而避免程序崩溃并提升用户体验。
|
2月前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
79 0
|
1月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####