讓我們看看如何在 PHP 中處理 HTTP 請求。

PHP 默認提供基於文件的路由。您可以創建一個 index.php 文件,並使其對應到 / 路徑。

在一開始時,我們在 Hello World 的示例中就看到了這一點。

同樣地,您可以創建一個 test.php 文件,然後 Apache 會在 /test 路由上自動提供該文件。

$_GET$_POST$_REQUEST

文件對所有 HTTP 請求進行響應,包括 GET、POST 和其他動詞。

對於任何請求,您可以使用 $_GET 对象來訪問所有查詢字符串數據,它被稱為 超全局 變量,並且在我們的所有 PHP 文件中都可以自動使用。

當然,在 GET 請求中最有用,但也可以在其他請求中將數據作為查詢字符串發送。

對於 POST、PUT 和 DELETE 請求,您更有可能需要以 urlencoded 數據或使用 FormData 對象發送的數據,PHP 使您可以使用 $_POST 來獲取這些數據。

還有一個 $_REQUEST 對象,它包含了 $_GET$_POST 的所有數據。

$_SERVER

我們還有一個叫做 $_SERVER 的超全局變量,您可以使用它來獲取很多有用的信息。

您之前已經看到如何使用 phpinfo()。讓我們再次使用它來查看 $_SERVER 提供的信息。

在 MAMP 的根目錄中的 index.php 文件中運行以下代碼:

<?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']