БлогNot. Эмулируем register_globals=on

Эмулируем 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);
}

теги: программирование php

15.06.2012, 20:16; рейтинг: 8733