Skrypt PHP - sprawdź, czy działa pod Linuksem czy Windows?
Mam skrypt PHP, który można umieścić w systemie Windows lub Linux. I tak muszę wykonywać inne polecenia.
Jak mogę sprawdzić, w jakim środowisku się znajduję? (najlepiej coś PHP zamiast sprytnych hacków systemowych)
Aktualizacja
>
Aby wyjaśnić, skrypt jest uruchamiany z wiersza poleceń.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
14 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
stałe
<sup>
Docs
</sup>http://php.net/manual/reserved ... hp-os
.
Zapewnia różne wartości w systemie Windows, takie jak , lub .
Zobacz też:
możliwe wartości dla: PHP_OS
https://coderoad.ru/738823/i
<sup>
Docs
</sup>http://php.net/php_uname
:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
wydaje się to być trochę bardziej eleganckie niż przyjęta odpowiedź. Jednak powyższe wykrycie za pomocą DIRECTORY_SEPARATOR jest najszybsze.
Anonimowy użytkownik
Potwierdzenie od:
PHP_OS zgłasza system operacyjny, na którym był
wybudowany
http://php.net/manual/en/function.php-uname.php
PHP, który niekoniecznie jest tym samym systemem operacyjnym, na którym obecnie działa.
Jeśli korzystasz z PHP & > = 5.3 i potrzebujesz tylko wiedzieć, czy używasz systemu Windows, czy nie-Windows, a następnie sprawdź, czy jeden z
Stałe specyficzne dla systemu Windows
http://php.net/manual/en/info.constants.php
może być dobrym zakładem, na przykład:
Anonimowy użytkownik
Potwierdzenie od:
php_uname
http://php.net/manual/en/function.php-uname.php
można go użyć do jego wykrycia.
Anonimowy użytkownik
Potwierdzenie od:
predefiniowane stałe: Uwagi użytkownika
http://nl3.php.net/manual/en/r ... 13172
Rozwiązania Volkera i rdcapasso, możesz po prostu utworzyć klasę pomocniczą, taką jak ta:
Za pomocą
:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Cm.
oficjalna dokumentacja
https://www.php.net/manual/res ... amily
PHP ze względu na możliwe wartości.
Anonimowy użytkownik
Potwierdzenie od:
Podstawowe predefiniowane stałe:
http://us3.php.net/ manual/bathroom/reserved.constants.php
http://us3.php.net/manual/en/r ... s.php
który ma stałą .
Lub jeśli chcesz wykryć system operacyjny klienta:
From
http://us3.php.net/manual/en/function. get-browser.php
http://us3.php.net/manual/en/f ... r.php
Zgodnie ze swoją edycją możesz odwołać się do tego duplikatu PHP
nazwa serwera z linii poleceń
https://coderoad.ru/626416/
możesz użyć
string php_uname ([ string $mode = "a" ] )
Więc
„s”: nazwa systemu operacyjnego.
FreeBSD.
To by załatwiło sprawę, zobacz tutaj
http://php.net/manual/en/function.php-uname.php
http://php.net/manual/en/function.php-uname.php
Anonimowy użytkownik
Potwierdzenie od:
jest nieco wolniejszy niż w tym konkretnym przypadku, ale jest wystarczająco wydajny do tak małych zadań i bardziej elegancki.
Anonimowy użytkownik
Potwierdzenie od:
ręcznie
http://php.net/manual/en/info.constants.php
)
Ta metoda była wcześniej używana w Symfony. Teraz używają
inna metoda
https://github.com/symfony/sym ... b554c
:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
http://www.php.net/manual/en/r ... 02162
http://www.php.net/manual/en/r ... 02162
:
To jest cała tablica $ _SERVER ... jak zauważył ArtWorkAD, używając klucza HTTP_USER_AGENT, możesz wyodrębnić system operacyjny bardziej jawnie.