Các mảng có sẵn trong php

Các mảng có sẵn trong php là $_POST, $_GET, $_SERVER, $_REQUEST, $_COOKIE, $_SESSION, $_FILES… chứa nhiều thông tin rất cần thiết cho bạn lúc lập trình.


Các mảng có sẵn trong php


Mảng $_GET trong php

$_GET là mảng trong php chứa các tham số trong địa chỉ. Các tham số này được liệt kê phía sau dấu ? trong url.

Trong hình dưới, trang a.php được request và có 2 tham số là tukhoa page. Giá trị của 2 tham số này nằm trong $_GET, bạn có thể lấy giá trị ra để dùng.

<!-- a.php  --> 
<?php var_export($_GET);  ?> <hr>
<?php echo $_GET['tukhoa']; ?>

Cách truyền tham số cho trang web như trên rất phổ biến trong lập trình web động. Nhờ đó lập trình mới được linh động, bở vì với những giá trị khác nhau của tham số, thì trang web mới hiện ra thông tin phù hợp cho người xem.

Còn 1 trường hợp dùng tới $_GET nữa, đó là trường hợp form có method là get. Với form này thì khi submit , các value trong form cũng được lưu trong $_GET.

<!-- tk.php -->
<form action="tk2.php" method="get" >
<input name="keyword" type="text">
<input name="act" value="search" type="hidden">
<button type="submit">Tìm</button>
</form>
<!-- tk2.php -->
<?php var_export($_GET); ?> <hr>
<?php echo $_GET['keyword']; ?>

Xem bạn thêm về $_GET trong các link sau:

Mảng $_POST trong php

Trong các mảng có sẵn trong PHP, $_POST là mảng thường hay dùng. Mảng này chứa các giá trị gửi đến từ 1 form có method là post. Ví dụ

<!-- formsearh.php -->
<form action="resultsearch.php" method="post" >
   <input type="text" name="tukhoa">
   <input type="hidden" name="lang" value="vi">
   <button type="submit">Tìm</button>
</form>
<!-- resultsearh.php -->
<?php var_export($_POST); ?> <hr>
<?php echo $_POST['tukhoa']; ?>

Dùng chính xác $_POST chữ hoa nhé. Số lượng phần tử trong $_POST tương ứng với các control mà bạn đã tạo trong form. Tên của phần tử trong $_POST chính là name của control trong form (tukhoa, lang) . Còn giá trị của phần tử trong $_POST là những giá trị đã được nhập trong form (laravel, vi)

Mảng $_SERVER trong php

$_SERVER cũng là một trong các mảng có sẵn trong php. Mảng này chứa nhiều thông tin quan trọng về client và server như là địa chỉ trang web hiện hành, method http, địa chỉ ip của client, trình duyệt mà user đang dùng …Sau đây đề cập một vài thông tin hữu dụng: REQUEST_URI, QUERY_STRING

REQUEST_URI

REQUEST_URI là phần tử trong mảng $_SERVER chứa địa chỉ trang web đang được user request. Cú pháp truy xuất là $_SERVER[‘REQUEST_URI’] . Cứ mỗi lần muốn biết địa chỉ trang web mà user request thì dùng cú pháp vừa nêu.

REQUEST_URI cho bạn biết chứa folder, tên trang web và các tham số của trang.

<?php //http://localhost/nc_test/info.php?a=1&b=2
echo $_SERVER['REQUEST_URI']; // php2_test/info.php?a=1&b=2
?>

QUERY_STRING

Trong trong mảng $_SERVER , phần tử QUERY_STRING rất thường hay dùng. Nó giúp bạn lấy giá trị các tham số truyền đến.  Cú pháp truy xuất là $_SERVER[‘QUERY_STRING’] .

Tham số truyền đến cho trang nằm sau dấu ?

<?php //http://localhost/nc_test/info.php?idloai=12&page=5
echo $_SERVER['QUERY_STRING'];  // idloai=12&page=5
?>

Giá trị của QUERY_STRING là 1 chuỗi chứa nhiều tham số bên trong. Nếu bạn muốn phân tách chuỗi này thành array để sử dụng thì dùng hàm parse_str như sau:

<?php //http://localhost/nc_test/info.php?idloai=12&page=5
parse_str($_SERVER['QUERY_STRING'], $params);
print_r($params); // [idloai => 12 ,page => 5 ]
?>

HTTP_HOST

HTTP_HOST là phần tử trong mảng $_SERVER chứa domain website mà user request đến. Cú pháp truy xuất là $_SERVER[‘HTTP_HOST’]. Rất hữu dụng khi cần lấy domain hiện hành. Vì website của bạn có thể chạy trên nhiều domain khác nhau.

<?php
// http://localhost/nc_test/info.php ==> localhost
// http://127.0.0.1/nc_test/info.php  ==> 127.0.0.1
echo $_SERVER['HTTP_HOST']; 
?>

REMOTE_ADDR

Trong trong mảng $_SERVER , phần tử có tên REMOTE_ADDR cho biết địa chỉ ip của client đang request đến website.  Cú pháp truy xuất là $_SERVER[‘REMOTE_ADDR’], dùng cái này để ghi nhận thông tin user, ghi log, có thể block ip nếu phá hoại hoặc ghi nhận vị trí của user dùng cho mục đích security

<?php //http://localhost/nc_test/info.php
echo $ip = $_SERVER['REMOTE_ADDR'];  // 127.0.0.1
?>

REQUEST_METHOD

REQUEST_MEHOD là phần tử trong mảng $_SERVER chứa method mà user request đến server. Giá trị nhận được có thể là GET , POST , PUT, DELETE… Cú pháp truy xuất là $_SERVER[‘REQUEST_MEHOD’]

<?php //http://localhost/nc_test/info.php
echo $_SERVER['REQUEST_METHOD']; // GET , POST
?>

DOCUMENT_ROOT

Trong trong mảng $_SERVER , phần tử có tên DOCUMENT_ROOT cho biết folder chứa website của bạn.  Cú pháp truy xuất là $_SERVER[‘DOCUMENT_ROOT’] . Dùng cái này trong việc tính toán đường dẫn local cho các file khi cần thực hiện các thao tác quản lý file như tạo, copy, rename, delete

<?php //http://localhost/nc_test/info.php
echo $_SERVER['DOCUMENT_ROOT'];  // E:/xampp/htdocs
?>

SERVER_PORT

Trong trong mảng $_SERVER , phần tử có tên SERVER_PORT cho biết port hoạt động của website.  Cú pháp truy xuất là $_SERVER[‘SERVER_PORT’]

<?php //http://localhost/php2_test/info.php
echo $_SERVER['SERVER_PORT'];  // 80
?>

Tham khảo thêm các bài này nhé (nếu muốn):