Есть ли надежные альтернативы parse str (), которые не подвержены ошибкам?
Есть ли какая-либо надежная альтернатива parse_str()
функция для разбора строки запроса?
Я нашел его очень запутанным и подверженным ошибкам, особенно когда строка запроса исходит от внешнего сервиса (и вы не можете полностью контролировать его):
$error = "Error message";
parse_str("param1=hello&error=false"); // Overrides $error
parse_str($externalQuery);
// Which variables are setted and which not?
4 ответа:
$error = "Error message"; $output_array = array(); parse_str("param1=hello&error=false", $output_array); var_dump($output_array);
Действительно ли вам нужно перезаписать существующие переменные или создать новые "неизвестные" переменные?
Передайте необязательный второй аргумент
parse_str()
и он будет помещать значения в ассоциативный массив вместо создания / перезаписи переменных. Из руководства php:Если присутствует второй параметр arr, то переменные хранятся в этой переменной как элементы массива.
Сначала необходимо инициализировать массив. Сделайте это:
$error = "Error message"; $vars = array(); parse_str("param1=hello&error=false", $vars); echo $error . "\n"; print_r($vars);
Который выводит:
Error message Array ( [param1] => hello [error] => false )