Biến $_SERVER trong PHP là một trong các biến được xác định trước trong PHP, có nghĩa là chúng ta luôn luôn có thể truy cập, bất kể phạm vi và bạn có thể truy cập chúng từ bất kỳ chức năng, lớp hoặc tập tin mà không cần phải làm bất cứ điều gì. Cùng tìm hiểu về các thành phần của biến $_SERVER trong PHP.
$ _SERVER là một mảng chứa thông tin về tiêu đề, đường dẫn, vị trí tập lệnh. Máy chủ web tạo các mục nhập trong mảng. Điều này không được đảm bảo rằng mọi máy chủ web sẽ cung cấp thông tin tương tự, thay vào đó một số máy chủ có thể bao gồm hoặc loại trừ một số thông tin không được liệt kê ở đây.
$ _SERVER có các thuộc tính cơ bản sau:
Thiết lập bởi máy chủ web.
Trực tiếp liên quan đến môi trường thời gian chạy của tập lệnh php hiện tại.
Nó thực hiện công việc giống như $ HTTP_SERVER_VARS được sử dụng để làm trong các phiên bản trước của PHP.
Thành phần |
Mô tả |
$_SERVER[‘PHP_SELF’] |
Trả về tên file của file đang được chạy. |
$_SERVER[‘GATEWAY_INTERFACE’] |
Trả về phiên bản của Common Gateway Interface(CGI) của máy chủ đang dùng |
$_SERVER[‘SERVER_NAME’] |
Trả về tên của máy chủ |
$_SERVER[‘HTTP_ACCEPT’] |
Chấp nhận trả về tiêu đề từ các yêu cầu hiện tại |
$_SERVER[‘HTTP_HOST’] |
Trả về tiêu đề chủ từ yêu cầu hiện tại |
$_SERVER[‘HTTP_REFERER’] |
Trả về URL hoàn chỉnh của trang hiện tại |
$_SERVER[‘HTTPS’] |
Được kịch bản truy vấn thông qua một giao thức HTTP an toàn |
$_SERVER[‘REMOTE_ADDR’] |
Trả về địa chỉ IP từ nơi người dùng đang xem một trang hiện hành |
$_SERVER[‘REMOTE_HOST’] |
Trả về tên máy chủ từ nơi người dùng đang xem một trang hiện hành |
$_SERVER[‘REMOTE_PORT’] |
Trả về các cổng được sử dụng trên máy tính của người dùng để giao tiếp với máy chủ web |
$_SERVER[‘SCRIPT_FILENAME’] |
Trả lại tên đường dẫn tuyệt đối của kịch bản hiện đang thực hiện |
$_SERVER[‘SERVER_PORT’] |
Trả về các cổng trên máy chủ được sử dụng bởi các máy chủ web để liên lạc(such as 80) |
$_SERVER[‘SERVER_SIGNATURE’] |
Trả về phiên bản máy chủ và tên máy chủ ảo được thêm vào các trang máy chủ tạo ra |
$_SERVER[‘PATH_TRANSLATED’] |
Trả về hệ thống tập tin dựa trên đường dẫn đến kịch bản hiện tại |
$_SERVER[‘SCRIPT_NAME’] |
Trả về đường dẫn của kịch bản hiện tại |
$_SERVER[‘SCRIPT_URI’] |
Trả về URI của trang hiện tại |
+ PHP: $ _SERVER ['PHP_SELF']
Bạn có thể tìm thấy tên tệp của tập lệnh hiện đang thực thi bằng cách sử dụng $ _SERVER ['PHP_SELF']. Tên tệp được hiển thị dưới dạng đầu ra có liên quan đến gốc của tài liệu.
Theo mã php được sử dụng $ _SERVER ['PHP_SELF']
echo $_SERVER['PHP_SELF'];
?>
Một ví dụ nâng cao khác:
$findit=array('/php/super-variables/test.php',
'/php/super-variables/test1123.php',
'/php/super-variables/php-self-advanced-example1.php'
);
for ($j=0; $j
{
if ($_SERVER['PHP_SELF']==$findit[$j])
echo "You are learning PHP Super Globals";
}
?>
+ PHP: $ _SERVER ['argv']
Nếu được sử dụng, tất cả các đối số được truyền từ dòng lệnh, được lưu trữ trong mảng $ _SERVER ['argv']. Tên tệp chính là mục đầu tiên trong mảng, nghĩa là 0.
Thí dụ:
echo $_SERVER['argv'];
?>
Nếu đây là một tập tin (nói arguments.php) chứa $ _SERVER ['argv'], và sau đó bạn chạy lệnh sau từ dòng lệnh:
D: \ php \ php.exe d: \ arguments.php w3resource. com
nơi php được cài đặt trong D: \ php và arguments.php được lưu trong D: \
Đầu ra của lệnh trên là:
d: \ arguments.php
w3resource
com
+ PHP: Biến toàn cầu siêu: $ argc
$ argc có thể chứa một số tham số dòng lệnh. Các thông số này được chuyển đến tập lệnh tương ứng.
Thí dụ:
var_dump($argc);
?>
Nếu mã trên được lưu dưới dạng argc.php và được thực thi từ dấu nhắc lệnh với các đối số arg1, arg2 và arg3, đây là đầu ra:
C: \ wamp \ bin \ php \ php5.3.0> php.exe-f "C: \ argc.php" - -arg1 -arg2 -arg3 int (4)
C: \ wamp \ bin \ php \ php5.3.0>
+ PHP: $ _SERVER ['GATEWAY_INTERFACE']
Biến $ _SERVER ['GATEWAY_INTERFACE'] trả về phiên bản của đặc tả giao diện cổng chung (CGI) mà máy chủ đang sử dụng. Ví dụ CGI / 1.1 là GATEWAY_INTERFACE hợp lệ.
Theo mã php đã sử dụng $ _SERVER ['GATEWAY_INTERFACE']. Chú ý một điểm, nếu bất kỳ máy chủ nào không chứa Giao diện Cổng chung (Common Gateway Interface - CGI), nó sẽ không hiển thị bất cứ thứ gì.
Thí dụ:
echo $_SERVER['GATEWAY_INTERFACE'];
?>
+ PHP: $ _SERVER ['SERVER_ADDR']
$ _SERVER ['SERVER_ADDR'] trả về địa chỉ IP (địa chỉ Giao thức Internet) của máy chủ lưu trữ.
Theo mã php đã sử dụng $ _SERVER ['SERVER_ADDR'] để hiển thị địa chỉ IP của máy chủ lưu trữ.
Thí dụ:
echo $_SERVER['SERVER_ADDR'];
?>
Đầu ra mẫu:
xxx.xx.xxx.xx
Lưu ý: Nếu bạn chạy mã trên trên localhost, nó sẽ trả về 127.0.0.1
+ PHP: $ _SERVER ['SERVER_NAME']
Tên tiểu bang của máy chủ lưu trữ.
Theo sau mã php đã sử dụng biến $ _SERVER ['SERVER_NAME'] để hiển thị tên của máy chủ lưu trữ.
Thí dụ:
echo $_SERVER['SERVER_NAME'];
?>
Đầu ra:
www.w3resource.com
Lưu ý: Nếu bạn chạy mã trên trên localhost, theo mặc định nó sẽ hiển thị tên máy chủ là localhost. Nếu tập lệnh đang chạy trên máy chủ ảo, tên của bộ máy chủ ảo, sẽ được trả về dưới dạng tên máy chủ.
+ PHP: $ _SERVER ['SERVER_SOFTWARE']
Biến $ _SERVER ['SERVER_SOFTWARE'] tìm nạp chuỗi nhận dạng máy chủ. Chuỗi được cung cấp trong các tiêu đề khi trả lời các yêu cầu.
Theo mã php được sử dụng $ _SERVER ['SERVER_SOFTWARE']
Thí dụ:
echo $_SERVER['SERVER_SOFTWARE'];
?>
Sao chép
Đầu ra:
Apache / 2.2.3 (CentOS)
+ PHP: $ _SERVER ['SERVER_PROTOCOL']
Biến $ _SERVER ['SERVER_PROTOCOL'] tìm nạp tên và sửa đổi giao thức thông tin mà qua đó trang đã được yêu cầu.
Theo mã php đã sử dụng $ _SERVER ['SERVER_PROTOCOL']
Thí dụ:
echo $_SERVER['SERVER_PROTOCOL'];
?>
Đầu ra:
HTTP / 1.1
+ PHP: $ _SERVER ['REQUEST_METHOD']
$ _SERVER ['REQUEST_METHOD'] tìm nạp phương thức yêu cầu được sử dụng để truy cập trang. Các phương thức yêu cầu là 'GET', 'HEAD', 'POST', 'PUT'.
Theo mã php được sử dụng $ _SERVER ['REQUEST_METHOD'] -
Thí dụ:
echo $_SERVER['REQUEST_METHOD'];
?>
Đầu ra:
GET
+ PHP: $ _SERVER ['REQUEST_TIME']
Biến $ _SERVER ['REQUEST_TIME'] tìm nạp dấu thời gian bắt đầu yêu cầu.
Theo mã php đã sử dụng $ _SERVER ['REQUEST_TIME']
Thí dụ:
echo $_SERVER['REQUEST_TIME'];
?>
+ PHP: $ _SERVER ['QUERY_STRING']
Nếu một trang được truy cập qua bất kỳ chuỗi truy vấn nào, $ _SERVER ['QUERY_STRING'] sẽ tìm nạp chuỗi truy vấn đó.
Theo mã php đã sử dụng $ _SERVER ['QUERY_STRING'].
Thí dụ:
echo "The query string is: ".$_SERVER['QUERY_STRING'];
?>
Nếu mã php ở trên được lưu với tên tệp QUERY_STRING.php và nếu bạn thêm '? Tutorial = php & section = super-globals' (nghĩa là QUERY_STRING.php? Tutorial = php & section = super-globals); nó sẽ in chuỗi này trong trang vì bạn đã yêu cầu tập lệnh in $ _SERVER ['QUERY_STRING'].
+ PHP: $ _SERVER ['HTTP_ACCEPT']
Nếu tồn tại, nội dung của tiêu đề Accept: từ yêu cầu hiện tại được tìm nạp bởi $ _SERVER ['HTTP_ACCEPT'].
Theo mã php đã sử dụng $ _SERVER ['HTTP_ACCEPT']
Thí dụ:
echo $_SERVER['HTTP_ACCEPT'];
?>
Đầu ra:
Text / html, ứng dụng / xhtml + xml, ứng dụng / xml; q = 0,9, * / *; q = 0,8
+ PHP: $ _SERVER ['HTTP_ACCEPT_CHARSET']
Nếu tồn tại, nội dung của tiêu đề Accept-Charset: từ yêu cầu hiện tại được tìm nạp bởi $ _SERVER ['HTTP_ACCEPT_CHARSET'].
Theo mã php được sử dụng $ _SERVER ['HTTP_ACCEPT_CHARSET']
Thí dụ:
echo $_SERVER['HTTP_ACCEPT_CHARSET'];
?>
Đầu ra:
ISO-8859-1, utf-8; q = 0,7, *; q = 0,7
+ PHP: $ _SERVER ['HTTP_HOST']
Theo mã php được sử dụng $ _SERVER ['HTTP_HOST']
Thí dụ :
echo $_SERVER['HTTP_HOST'];
?>
Đầu ra:
www.w3resource.com
+ PHP: $ _SERVER ['HTTP_REFERER']
$ _SERVER ['HTTP_REFERER'] có thể được sử dụng để tìm nạp URL đầy đủ của trang hiện tại.
Theo mã php đã sử dụng $ _SERVER ['HTTP_REFERER']
Thí dụ:
echo $_SERVER['HTTP_REFERER'];
?>
Đầu ra:
https://www.w3resource.com/php/super-variables/$_SERVER-HTTP_REFERER.php
+ PHP: $ _SERVER ['HTTP_USER_AGENT']
Nếu tồn tại, nội dung của tiêu đề User-Agent: từ yêu cầu hiện tại được tìm nạp bởi $ _SERVER ['HTTP_USER_AGENT'].
Theo mã php đã sử dụng $ _SERVER ['HTTP_USER_AGENT']
Thí dụ:
echo $_SERVER['HTTP_USER_AGENT'];
?>
+ PHP: $ _SERVER ['HTTPS']
Nếu tập lệnh được truy vấn thông qua giao thức HTTP bảo mật, $ _SERVER ['HTTPS'] được đặt thành giá trị không trống.
Theo mã php được sử dụng $ _SERVER ['HTTPS']
Thí dụ:
echo $_SERVER['HTTPS'];
?>
+ PHP: $ _SERVER ['REMOTE_ADDR']
$ _SERVER ['REMOTE_ADDR'] tìm nạp địa chỉ IP mà người dùng đang xem trang hiện tại.
Theo mã php đã sử dụng $ _SERVER ['REMOTE_ADDR']
Thí dụ:
echo $_SERVER['REMOTE_ADDR'];
?>
+ PHP: $ _SERVER ['REMOTE_HOST']
$ _SERVER ['REMOTE_HOST'] tìm nạp tên Máy chủ mà người dùng đang xem trang hiện tại.
Theo mã php đã sử dụng $ _SERVER ['REMOTE_HOST']
Thí dụ:
echo $_SERVER['REMOTE_HOST'];
?>
+ PHP: $ _SERVER ['REMOTE_PORT']
Theo mã php đã sử dụng $ _SERVER ['REMOTE_PORT']
Thí dụ:
echo $_SERVER['REMOTE_PORT'];
?>
+ PHP: $ _SERVER ['SCRIPT_FILENAME']
$ _SERVER ['SCRIPT_FILENAME'] tìm nạp tên đường dẫn tuyệt đối của tập lệnh hiện đang thi hành.
Theo mã php được sử dụng $ _SERVER ['SCRIPT_FILENAME']
Thí dụ:
echo $_SERVER['SCRIPT_FILENAME'];
?>
Đầu ra:
https://www.w3resource.com/php/super-variables/$_SERVER-HTTP_REFERER.php
+ PHP: $ _SERVER ['SERVER_ADMIN']
$ _SERVER-SERVER_ADMIN.php tìm nạp giá trị cho chỉ thị SERVER_ADMIN (cho Apache) trong tệp cấu hình máy chủ web.
Nếu tập lệnh đang chạy trên máy chủ ảo, đây sẽ là giá trị được xác định cho máy chủ ảo đó.
Theo mã php đã sử dụng $ _SERVER ['SERVER_ADMIN']
Thí dụ:
echo $_SERVER['SERVER_ADMIN'];
?>
Đầu ra:
abcd@w3resource.com
+ $ _SERVER ['SERVER_PORT']
Theo mã php đã sử dụng $ _SERVER ['SERVER_PORT']
Thí dụ:
echo $_SERVER['SERVER_PORT'];
?>
+ PHP: $ _SERVER ['SERVER_SIGNATURE']
$ _SERVER ['SERVER_SIGNATURE'] tìm nạp chuỗi chứa phiên bản máy chủ và tên máy chủ ảo được thêm vào các trang do máy chủ tạo, nếu được bật.
Theo mã php đã sử dụng $ _SERVER ['SERVER_SIGNATURE']
Thí dụ:
echo $_SERVER['SERVER_SIGNATURE'];
?>
Đầu ra:
Máy chủ Apache / 2.2.3 (CentOS) tại www.w3resource.com
+ PHP: $ _SERVER ['PATH_TRANSLATED']
$ _SERVER ['PATH_TRANSLATED'] tìm đường dẫn dựa trên hệ thống tệp đến tập lệnh hiện tại. Điều này được thực hiện sau khi máy chủ đã thực hiện bất kỳ ánh xạ ảo tới thực nào. Nó chỉ hoạt động khi PATH_INFO được định nghĩa.
Theo mã php đã sử dụng $ _SERVER ['PATH_TRANSLATED']
Thí dụ:
echo $_SERVER['PATH_TRANSLATED'];
?>
+ PHP: $ _SERVER ['SCRIPT_NAME']
$ _SERVER ['SCRIPT_NAME'] chứa đường dẫn của tập lệnh hiện tại.
Thí dụ:
echo $_SERVER['SCRIPT_NAME'];
?>
Đầu ra:
/php/super-variables/$_SERVER-SERVER_SCRIPT_NAME-example1.php
+ PHP: $ _SERVER ['SCRIPT_URI']
$ _SERVER ['REQUEST_URI'] chứa URI của trang hiện tại.
Vì vậy, nếu đường dẫn đầy đủ của một trang là https://www.w3resource.com/html/html-tutorials.php, $ _SERVER ['REQUEST_URI'] sẽ chứa /html/html-tutorials.php.
Sau mã php đã sử dụng biến $ _SERVER ['REQUEST_URI'].
Thí dụ:
echo $_SERVER['REQUEST_URI'];
?>
Đầu ra:
/php/super-variables/PHP-$_SERVER-REQUEST_URI-example.php
Trong bài này chúng ta đã cùng nhau tìm hiểu chi tiết về biến $_SERVER trong PHP. Chúc các bạn thành công!
Một số kiến thức về lập trình PHP khác bạn nên xem: