4 небольших, но весьма полезных функции PHP

Без рубрики

При работе над приложением для клиентов разработчику приходится сталкиваться с непредсказуемыми условиями рабочего окружения, установками сервера и конфигурациями. Чтобы исправить положение можно использовать 4 простые, но эффективные PHP функции.При работе над приложением для клиентов разработчику приходится сталкиваться с непредсказуемыми условиями рабочего окружения, установками сервера и конфигурациями. Чтобы исправить положение можно использовать 4 простые, но эффективные PHP функции.

В ходе разработки нужно получать сообщения об ошибках как можно более высокого уровня. Но в рабочих версиях сервера нужно скрывать такие сообщения. Для этого можно использовать простую функцию, которая будет проверять константу DEVELOPMENT_ENVIRONMENT и действовать соответственно установкам:

function setReporting() {
    if (DEVELOPMENT_ENVIRONMENT == true) {
        error_reporting(-1);
        ini_set(‘display_errors’,’On’);
    } else {
        error_reporting(-1);
        ini_set(‘display_errors’,’Off’);
        ini_set(‘log_errors’, ‘On’);
        ini_set(‘error_log’, ROOT.DS.’lm/tmp’.DS.’logs’.DS.’error.log’);
    }
}

Путь к хранилищу сообщений об ошибках в последней строке нужно установить свой.

Вторая функция является вспомогательной для третьей функции:

function stripSlashesDeep($value) {
    $value = is_array($value) ? array_map(‘stripSlashesDeep’, $value) : stripslashes($value);
    return $value;
}

Она используется в следующей функции:


function removeMagicQuotes() {
    if ( get_magic_quotes_gpc() ) {
        $_GET     = stripSlashesDeep($_GET   );
        $_POST   = stripSlashesDeep($_POST  );
        $_COOKIE = stripSlashesDeep($_COOKIE);
    }
}

Если окружение использует Magic Quotes, то выше приведенная функция пропускает обработку строк.

Последняя по порядку, но не по значению функция проверяет дьявольскую регистрацию глобальных установок и корректно исправляет ее:

function unregisterGlobals() {
    if (ini_get(‘register_globals’)) {
        $array = array(‘_SESSION’, ‘_POST’, ‘_GET’, ‘_COOKIE’, ‘_REQUEST’, ‘_SERVER’, ‘_ENV’, ‘_FILES’);
        foreach ($array as $value) {
            foreach ($GLOBALS[$value] as $key => $var) {
                if ($var === $GLOBALS[$key]) {
                    unset($GLOBALS[$key]);
                }
            }
        }
    }
}

И приложение снова в безопасности.

Такие мелочи существенно облегчают жизнь при разработке проектов на PHP.