создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

PHP. Руководство по PHP. 2005

Разные вопросы Пред.

След.

Глава 77. Разные вопросы

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

Вы можете найти их здесь.

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

2. - Что означает & рядом с аргументом в объявлении функции, например

asort()?

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

1.

Как я могу обращаться со сжатыми 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.

  • 2.

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

    asort()?

    Это означает, что аргумент

    передаётся по ссылке

    и функция, вероятно, изменит его согласно документации.

    Таким путём вы можете передать только переменные и вам не обязательно

    задавать & при вызове функции (и это даже

    не рекомендуется).

    3.

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

    Для информации по проблемам безопасности, связанных с

    register_globals, читайте

    Использование register_globals

    в главе Безопасность.

    Предпочтительнее использовать

    superglobals,

    чем полагаться на то, что register_globals

    установлена в On.

    Если вы пользуетесь совместным хостом с выключенной

    register_globals и вам надо использовать некоторые

    существующие приложения, которые требуют чтобы эта опция была включена;

    или вы на каком-либо сервере, где эта возможность включена, но вы хотите

    эмулировать проблему по безопасности, то возможно вам надо эмулировать

    противоположную установку с помощью PHP.

    Всегда лучше сначала спросить, если можно каким-либо образом изменить опцию

    в конфигурации PHP, но если это невозможно, то вы можете воспользоваться

    следующими совместимыми кусками кода.

    Пример 77-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

    Уровень выше

    Приложения

    Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

    Ваше письмо×
    Free Web Hosting