mb_parse_str
mb_parse_str($string, $result)
Dzieli query string (część adresu URL za znakiem zapytania) na tablicę. Dekoduje wartości z adresu URL i zamienia je na wewnętrzne kodowanie mbstring. Zwraca true, przy błędzie false.
Parametry
- $string – query string, np. name=Jan&strona=2.
- $result – zmienna, która dostanie tablicę. Jej dotychczasowa zawartość zostanie nadpisana.
Przykłady
mb_parse_str("name=Łukasz&kolor[]=zielony&kolor[]=beżowy", $data);
echo json_encode($data, JSON_UNESCAPED_UNICODE); // {"name":"Łukasz","kolor":["zielony","beżowy"]}
// zakodowane znaki z adresu URL zostaną zdekodowane
mb_parse_str("q=%C5%81%C3%B3d%C5%BA", $data);
echo $data["q"]; // Łódź
// kropki i spacje w nazwach zmieniają się w podkreślenia, tak samo jak w parse_str()
mb_parse_str("a.b=1&c d=2", $data);
echo implode(",", array_keys($data)); // a_b,c_d
Na co uważać
- Zawsze przekazuj drugi parametr. Bez niego funkcja tworzyłaby zmienne bezpośrednio w skrypcie. Od PHP 7.2 jest to przestarzałe, a PHP 8 kończy się błędem ArgumentCountError.
- Jeśli wszystko jest w UTF-8 (strona, formularze, kodowanie wewnętrzne), daje ten sam wynik co parse_str().
- Wartości są zawsze ciągami (albo tablicami ciągów). Liczby zamieniaj i sprawdzaj sam, na przykład przez filter_var().
Powiązane funkcje:
parse_str()
http_build_query()
parse_url()
urldecode()
mb_internal_encoding()