ЧАВО
PHP Manual

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

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

  1. Как я могу обращаться со сжатыми bz2 руководствами под Windows?
  2. Что означает & рядом с аргументом в объявлении функции, например asort()?
  3. Как обращаться с register_globals?
  4. Как я могу обращаться со сжатыми 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, но если это невозможно, то вы можете воспользоваться следующими совместимыми кусками кода.

    Example#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($superglobalEXTR_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 Manual