Эмулируем register_globals=on
Многим программистам на PHP приходилось переделывать старые скрипты, избавляясь от глобальных переменных и установки register_globals=on
по умолчанию. Надо полагать, что проще и дешевле (хотя и не безопасней!) написать функцию register_globals()
, которая "глобализует" (сунет в суперглобальный массив $GLOBALS
) всё, что по именам похоже на объекты данных... вот код:
function register_globals_array($array) { foreach($array as $key => $value) if (preg_match("/[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*/", $key)) $GLOBALS[$key] = $value; } function register_globals() { register_globals_array($_GET); register_globals_array($_POST); register_globals_array($_COOKIE); register_globals_array($_ENV); register_globals_array($_SERVER); }
15.06.2012, 20:16 [9432 просмотра]