Я не уверен, что вы не хотите использовать eval
, поскольку это именно для той цели, которую вы описываете. Однако, поскольку оценка пользовательского ввода настолько опасна, поэтому вы пытаетесь избежать этого? Если это так, ваш единственный вариант, вероятно, состоит в том, чтобы проанализировать значение $_GET['foo']
, удалить любой опасный или нежелательный код, а затем eval
it.
[ Редактировать ] - Новый ответ
Теперь, когда я думаю об этом, если вам нужно простое решение для пользователя для ввода данных, основанных на массивах, посмотрите на parse_ini_string
- http://us3.php.net/parse_ini_string.. Он примет строку в следующем формате и даст ассоциативный массив. Вы даже можете использовать многомерные массивы, если они вам нужны.
one = 1
five = 5
animal = BIRD
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"