$_SERVER
$_SERVER
是一個包含了注入頭信息(header)、路徑(path)及腳本位置(script locations)等信息的數組,這個數組中的項目由web服務器創建。不能保證每個服務器都會提供全部項目,服務器可能會忽略一些,或者提供一些沒有在此處列舉出來的項目。
數組元素 | 說明 |
---|---|
$_SERVER[‘PHP_SELF’] | 當前執行腳本的文件名,與document root有關。如,在地址爲http://example.com/text.php/foo.bar的腳本中使用$_SERVER[‘PHP_SELF’]將得到/test.php/foo.bar |
$_SERVER[‘SERVER_ADDR’] | 當前運行腳本所在服務器的IP地址 |
$_SERVER[‘SERVER_NAME’] | 當前運行腳本所在服務器的主機名。如果腳本運行與虛擬主機中,該名稱就由那個虛擬主機所設置的值決定。 |
$_SERVER[‘SERVER_PROTOCOL’] | 請求頁面時通信協議的名稱和版本。如:“HTTP/1.0” |
$_SERVER[‘REQUEST_METHOD’] | 訪問頁面使用的請求方法,如GET、HEAD、POST、PUT |
$_SERVER[‘DOCUMENT_ROOT’] | 當前運行腳本所在的文檔根目錄。在服務器配置文件中定義 |
$_SERVER[‘HTTP_ACCEPT_LANGUAGE’] | 當前請求頭中Accept-Language項的內容(如果存在)。如:“en” |
$_SERVER[‘REMOTE_ADDR’] | 瀏覽當前頁面的用戶IP地址,注意與$_SERVER[‘SERVER_ADDR’]的區別 |
$_SERVER[‘SCRIPT_FILENAME’] | 當前執行腳本的絕對路徑 |
$_SERVER[‘SCRIPT_NAME’] | 包含當前腳本的路徑 |
$_SERVER[‘REQUEST_URI’] | URI用來指定要訪問的頁面。例如:“/index.html” |
$_SERVER[‘PATH_INFO’] | 包含由客戶端提供的、跟在真實腳本名稱之後並且在查詢語句(querystring)之前的路徑信息(如果存在)。 |
$_GET
和$_POST
數組
$_GET
和$_POST
是PHP中十分重要的兩個數組,在開發過程中,$_GET
和$_POST
像靈魂一樣無處不在。
頁面之間傳遞信息可通過GET和POST兩種方式完成。$_GET
和$_POST
可分別用來接收這兩種方式傳遞過來的數據。
【示例】
創建一個index.html文件,文件代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>GET測試</title>
</head>
<body>
<form action="get.php" method="get">
姓名:<input type="text" name="name">
電話:<input type="text" name="phone">
<input type="submit" value="提交">
</form>
</body>
</html>
然後創建get.php文件來處理來自index.html提交過來的數據:
<?php
echo "<pre>get method:<br />";
print_r($_GET);
echo "</pre>";
?>
在瀏覽器中打開index.html得到如下頁面:
提交該頁面後,得到輸出結果:
可以看到$_GET
數組中包含了我們輸入的數據。
修改index.html文件中action=“post.php” method=“post”,然後新建post.php,代碼如下:
<?php
echo "<pre>post method:<br />";
print_r($_PSOT);
echo "</pre>";
?>
可以得到相同的結果。
$_FILES
數組
$_FILES
數組用於獲取通過POST方法上傳文件的相關信息,如果爲單個文件上傳,那麼該數組爲二維數組,如果爲多個文件上傳,那麼該數組爲三維數組。
【示例】
建立一個file.html演示上傳文件,代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>FILES測試</title>
</head>
<body>
<form enctype="multipart/form-data" action="file.php" method="POST">
上傳文件:<input name="userfile" type="file">
<input type="submit" value="上傳">
</form>
</body>
</html>
新建一個用於接收文件信息的PHP文件file.php,代碼如下:
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>"
?>
在file.html頁面選擇文件後,單擊上傳按鈕,將會在頁面輸出以下信息:
$_SESSION
和$_COOKIE
數組
$_COOKIE[]
全局數組存儲了通過HTTP COOKIE傳遞到腳本的信息,PHP可通過setcookie()
函數設置COOKIE的值,用$_COOKIE[]
數組接收COOKIE的值,$_COOKIE[]
數組的索引爲COOKIE的名稱。
$_SESSION[]
數組用於獲取會話變量的相關信息。
$_REQUEST[]
數組
默認情況下,$_REQUEST[]
數組包含了$_GET
、$_POST
和$_COOKIE
的數組。