Нужно на локалке редачить скрипт с автовыгрузкой на боевой, но закрыть от пользунов редактируемую область.
Как железно определять, что на локалке я?
p.s. например, ЕМНИП лет 5 назад сталкивался на Vesta-панели $_SERVER['REMOTE_ADDR'] отдавал 127.0.0.1, пока там не пошаманить, да и БД на локалхосте вроде как...
Частный случай, когда виндовс на локале и юникс на хостинге, то через предопределенную константу DIRECTORY_SEPARATOR
ну и $_SERVER['HTTP_HOST'] - в локалке думаю будет другим чем на хостинге ;)
это решение менее универсально так как завязывается на конкретное имя домена
Иван Иванов, есть же нормальный ответ, сделайте переменную окружения и в ней храните тип окружения. Неполучается использовать переменные окружения, сделайте переменную в конфигурации проекта.
Вариант DIRECTORY_SEPARATOR даже комментировать не буду.
REMOTE_ADDR === '127.0.0.1' тоже самое, нельзя использовать для определения чего-то, переменные это не определяющие, иначе все будет печально.
Для вывода названия операционной системы используется константа PHP_OS, но имейте в виду, что эта константа содержит название операционной системы, на которой PHP был собран (built).
Можете пояснить, что значит был собран? Установлен?
Вот у меня OSPanel стоит, мне подойдёт, если я эту константу заюзаю?
PHP_OS (string) - Операционная система, под которую собирался PHP.
Когда собирается и компилируется код, это делается под определенную ОС, т.к. исполняемый код будет разный на разных системах.
Вот у меня OSPanel стоит, мне подойдёт, если я эту константу заюзаю?
Подойдет для определения ОС, под которую собирался php. Для задачи, которую вы решаете - нет, не подойдет. Да, это будет работать при условии, что разные ОС на проде и деве, но используемая ОС не имеет никакой связи с окружением, и по ней нельзя определять прод это, или дев, или тест. Подобный подход создает неявное поведение, что в конечном итоге закончится большими проблемами, когда вы меняете одно, а это вызывает изменение несвязанных параметров, и все рухнет как карточный домик.