Переход из PHP 4 в PHP 5
Appendices
ЧАВО
PHP Manual

# Разные вопросы

Некоторые вопросы могут не подходить для других категорий. Вы можете найти их здесь.

1. Как я могу обращаться со сжатыми bz2 руководствами под Windows?
2. Что означает & рядом с аргументом в объявлении функции, например asort()?
3. Как обращаться с register_globals?

Как я могу обращаться со сжатыми bz2 руководствами под Windows?

  Если у вас нет архиватора для работы с bz2 файлами, то » скачайте утилиту для командной строки от Redhat (пожалуйста, ищите подробности ниже).

  Если вы не хотите использовать утилиту командной строки, вы можете попробовать бесплатные средства, такие как » Stuffit Expander, » UltimateZip, » 7-Zip или » Quick Zip. Если у вас есть такие утилиты как » WinRAR или » Power Archiver, то с их помощью вы можете легко распаковать bz2 файлы. Если вы пользуетесь Total Commander (бывший Windows Commander), подключаемый модуль bz2 для этой программы доступен бесплатно с сайта » Total Commander.

  Утилита командной строки bzip2 от Redhat:

  Пользователи Win2K Sp2 должны взять последнюю версию 1.0.2, пользователи всех других Windows должны взять версию 1.00. После загрузки переименуйте исполняемый файл в bzip2.exe. Для удобства положите его в директорию в вашем пути, например C:\Windows, где C соответствует диску, на котором установлен ваш Windows.

  Замечание: lang обозначает ваш язык и x - желаемый формат, например pdf. Чтобы распаковать php_manual_lang.x.bz2, следуйте этим простым инструкциям:

  - откройте окно запроса команды (command prompt)
  - cd в директорию, где вы храните скаченный php_manual_lang.x.bz2
  - вызовите bzip2 -d php_manual_lang.x.bz2, извлеките php_manual_lang.x в ту же директорию

  В случае, если вы скачали php_manual_lang.tar.bz2, содержащий множество html файлов, процедура точно такая же. Единственное отличие заключается в том, что вы получили файл php_manual_lang.tar. Известно, что формат tar обрабатывается большинством распространённых архиваторов под Windows, например такими как » WinZip.

Что означает & рядом с аргументом в объявлении функции, например asort()?

  Это означает, что аргумент передаётся по ссылке и функция, вероятно, изменит его согласно документации. Таким путём вы можете передать только переменные и вам не обязательно задавать & при вызове функции (и это даже не рекомендуется).

Как обращаться с register_globals?

  Для информации по проблемам безопасности, связанных с register_globals, читайте Использование register_globals в главе Безопасность.

  Предпочтительнее использовать superglobals, чем полагаться на то, что register_globals установлена в On.

  Если вы пользуетесь совместным хостом с выключенной register_globals и вам надо использовать некоторые существующие приложения, которые требуют чтобы эта опция была включена; или вы на каком-либо сервере, где эта возможность включена, но вы хотите эмулировать проблему по безопасности, то возможно вам надо эмулировать противоположную установку с помощью PHP. Всегда лучше сначала спросить, если можно каким-либо образом изменить опцию в конфигурации PHP, но если это невозможно, то вы можете воспользоваться следующими совместимыми кусками кода.

  Пример #1 Эмулирование Register Globals

  Следующее эмулирует register_globals установленную в On.

  `<?php
  // Emulate register_globals on
  if (!ini_get('register_globals')) {
  $superglobals = array($_SERVER, $_ENV,
  $_FILES, $_COOKIE, $_POST, $_GET);
  if (isset($_SESSION)) {
  array_unshift($superglobals, $_SESSION);
  }
  foreach ($superglobals as $superglobal) {
  extract($superglobal, EXTR_SKIP);
  }
  ini_set('register_globals', true);
  }
  ?>`

  Следующее эмулирует register_globals установленную в Off.

  `<?php
  // Emulate register_globals off
  if (ini_get('register_globals')) {
  $superglobals = array($_SERVER, $_ENV,
  $_FILES, $_COOKIE, $_POST, $_GET);
  if (isset($_SESSION)) {
  array_unshift($superglobals, $_SESSION);
  }
  foreach ($superglobals as $superglobal) {
  foreach ($superglobal as $global => $value) {
  unset($GLOBALS[$global]);
  }
  }
  ini_set('register_globals', false);
  }
  ?>`

Переход из PHP 4 в PHP 5
Appendices
ЧАВО
PHP Manual