Hàm mb_parse_str() parse dữ liệu URL-encoded (GET, POST, COOKIE), detect encoding, convert về internal encoding, và set biến global. Hỗ trợ từ PHP 7+.
Cú pháp
bool mb_parse_str(string $string, array &$result)
Tham số
| Tham số | Mô tả |
|---|---|
$string |
Dữ liệu URL-encoded (ví dụ: "user_id=123&email=xyz@gmail.com&country=Vietnam"). |
$result |
Mảng tham chiếu (pass by reference) nhận kết quả parse. |
Giá trị trả về
true nếu thành công, false nếu thất bại.
Ví dụ
<?php
$data = "user_id=123&email=xyz@gmail.com&country=Vietnam";
$result = [];
mb_parse_str($data, $result);
print_r($result);
/*
Array
(
[user_id] => 123
[email] => xyz@gmail.com
[country] => Vietnam
)
*/
?>
So sánh với parse_str()
| Đặc điểm | parse_str() |
mb_parse_str() |
|---|---|---|
| Multibyte support | Không (giả định single-byte) | Có (detect & convert encoding) |
| Set global variable | Có (mặc định, deprecated) | Không (chỉ set vào $result array) |
| PHP version | Tất cả | PHP 7.0+ |
| Security | Rủi ro (auto-global) | An toàn hơn (explicit array) |
Lưu ý
- Cần extension
mbstring. - Không tự động set vào
$_GET,$_POST,$_COOKIE– phải gán thủ công nếu cần. - Encoding detect dựa trên
mb_detect_order(). - Hữu ích khi xử lý request từ client gửi encoding khác UTF-8.