如何在PHP中处理HTTP请求(附代码)

415 阅读1分钟

我们来看看如何在PHP中处理HTTP请求。

PHP默认提供基于文件的路由。你创建一个index.php 文件,该文件在/ 路径上响应。

我们在一开始做Hello World的例子时看到了这一点。

同样地,你可以创建一个test.php 文件,并自动将其作为Apache在/test 路由上提供的文件。

$_GET,$_POST$_REQUEST

文件响应所有的HTTP请求,包括GET、POST和其他动词。

对于任何请求,你都可以使用$_GET 对象来访问所有的查询字符串数据,这个对象被称为superglobal,在我们所有的PHP文件中自动可用。

这当然在GET请求中最有用,但其他请求也可以作为查询字符串发送数据。

对于 POST、PUT 和 DELETE 请求,你更可能需要以 urlencoded 数据或使用 FormData 对象来发布数据,PHP 使用$_POST 来提供这些数据。

还有$_REQUEST ,它将所有的$_GET$_POST 合并在一个变量中。

$_SERVER

我们还有一个超全局变量$_SERVER ,用它来获得很多有用的信息。

你以前看过如何使用phpinfo() 。让我们再次使用它,看看$_SERVER为我们提供的东西。

在你的index.php 文件中,在MAMP的根目录下运行:

<?php
phpinfo();
?>

然后在localhost:8888生成页面并搜索$_SERVER ,你会看到所有存储的配置和分配的值。

你可能会用到的重要配置有

  • $_SERVER['HTTP_HOST']
  • $_SERVER['HTTP_USER_AGENT']
  • $_SERVER['SERVER_NAME']
  • $_SERVER['SERVER_ADDR']
  • $_SERVER['SERVER_PORT']
  • $_SERVER['DOCUMENT_ROOT']
  • $_SERVER['REQUEST_URI']
  • $_SERVER['SCRIPT_NAME']
  • $_SERVER['REMOTE_ADDR']