«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу надежно определить, запускается ли мой PHP-скрипт из командной строки или через HTTP?

Как я могу надежно определить, запускается ли мой PHP-скрипт из командной строки или через HTTP?

Опубликовано 21 декабря 2024 г.
Просматривать:223

How Can I Reliably Determine if My PHP Script is Running from the Command Line or via HTTP?

Определение выполнения командной строки и HTTP в PHP

Общая задача при разработке PHP-скриптов — определение типа среды выполнения, сценарий запускается через командную строку или через HTTP. Эти знания имеют решающее значение для принятия решений о форматировании вывода и соответствующей настройки поведения.

Традиционный метод проверки существования SERVER['argc'] не является надежным, поскольку он может быть заполнен даже при использовании Apache Серверный API обработчика версии 2.0. Канонический способ разрешения этого запроса — использование функции php_sapi_name().

if (php_sapi_name() == "cli") {
    // In cli-mode
} else {
    // Not in cli-mode
}

Функция php_sapi_name() предоставляет широкий диапазон возможных возвращаемых значений, включая aolserver, apache, apache2filter, apache2handler, caudium, cgi, cli, webjames и другие. Полный список см. в документации PHP.

Более того, в PHP >= 4.2.0 предопределенная константа PHP_SAPI содержит то же значение, что и php_sapi_name(). Используя эту константу, разработчики могут улучшить читаемость и удобство сопровождения кода.

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

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3