PHP - Lấy tên của trường trong chuỗi truy vấn query string

Với một URL như sau:

http://tenmien.vn?sort=desc&limit=20

Thì các bác cho em hỏi có cách nào để lấy ra tên của các trường trong chuỗi truy vấn query string sử dụng PHP không?

Với ví dụ trên thì em cần lấy ra hai trường là sortlimit.

Em biết cách lấy ra giá trị của các trường thông qua biến toàn cục $_GET nhưng ở đây em cần tên của các trường thay vì giá trị của từng trường.

1 Câu Trả Lời

Lê Trung Lê Trung

Bạn làm theo hai bước sau:

Bước 1: Sử dụng biến global $_SERVER để lấy ra giá trị của chuỗi query string

$query = $_SERVER['QUERY_STRING'];
echo $query; // Hiển thị: sort=desc&limit=20

Bước 2: Sử dụng hàm parse_str() để phân tích chuỗi về các biến

parse_str($query, $params);

Hàm parse_str() như ở trên, biến $params sẽ được gán giá trị là một mảng với hai tên khoá là sortlimit và giá trị tương ứng là desc10.

print_r($params);
/**
Array
(
    [sort] => desc
    [limit] => 20
)
**/

Cuối cùng nếu bạn chỉ muốn lấy ra các trường trong chuỗi truy vấn thì bạn thêm một bước sau:

$keys = array_keys($params);

print_r($keys);
/**
Array
(
    [0] => sort
    [1] => limit
)
*/
Nội dung tối thiểu 100 ký tự

Câu Hỏi Liên Quan