Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sprawdzanie OS przez php
Forum PHP.pl > Forum > PHP
Setesh
Kto wie jak można sprawdzić na jakim systemie operacyjnym jest postawiony serwer www oczywiście za pomocą php ?

Potrzebuje ustawić bezwzględne ścieżki w pliku według systemu operacyjnego np :

jeżeli serwer www postawiony jest na linuxie to ustaw scieżkę :

  1. <?php
  2. $sciezka = "/home/user/me/";
  3. ?>


a jeżeli na windowsie to :

  1. <?php
  2. $sciezka = "c:serwerszablonyserwis";
  3. ?>


chciałem zrobić to sam ale nie daj rady sad.gif

Zastanawiałem się nad czymś takim że może uda się odczytać jakaś wartość za pomocą php i wtedy wszystko było by łatwe :

  1. <?php
  2. if($os=="Windows") $sciezka = "/home/user/me/";
  3. else if($os=="Linux") $sciezka = "c:serwerszablonyserwis";
  4. ?>


Niestety ponieważ nie wiem jak to ustawić to to rozwiązanie mi chyba odpada a bardzo go potrzebuję aby nie zmieniać za każdym razem ręcznie ścieżek jak wysyłam z mojego kompa na serwer linuxowy sad.gif
nospor
http://pl.php.net/manual/pl/function.phpinfo.php
zwraca wiele informacji, min. i system. Musisz tylko przeparsowac te dane winksmiley.jpg
Cienki1980
Skorzystaj z czegoś takiego:
  1. <?php
  2. $sciezka=realpath(dirname(__FILE__))."/jakis_folder/przypisany_na_stale/";
  3. ?>
krowal
A tak BTW to nie ma potrzeby zmieniania "/" na "\" przy przechodzeniu na win, ścieżki z "/" są już chyba uznawane za poprawne od czasu WIN ME
PiotrLegnica
http://pl.php.net/php_uname
http://pl.php.net/manual/en/language.const....predefined.php :
DIRECTORY_SEPARATOR
PHP_OS
Setesh
Wykorzystałem to :
  1. <?php
  2. if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') 
  3. {
  4.  $path="c:/www/serwis/";
  5. }else{
  6. $path="/home/users/me/serwis/";
  7.  };
  8. ?>

i działa jak należy smile.gif THX WIELKIE tongue.gif
Cienki1980
Tylko pamiętaj, że jak zmienisz serwer będziesz musiał zmienić ten kawałek kodu. To co ja podałem będzie podawało ścieżkę dostępu zawsze odpowiednią.
Setesh
niby czemu mam zmieniac sciezke questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif

a jak to niby bez zmiany zrobić ? :|
Cienki1980
Wystarczy, że będziesz chciał za jakiś czas przenieść pliki na inny serwer, albo do innego folderu ... ścieżki się zmienią.
  1. <?php
  2. echo realpath(dirname(__FILE__));
  3. ?>


Zobacz co powyższy kod zwraca i zastosuj. Dzięki temu nie bawisz się w ścieżki, zawsze poda Ci taką jaka powinna być.
Setesh
eee... fajne smile.gif

nie ma to jak mały kod smile.gif

WIELKI THX exclamation.gif!! OGROMNE exclamation.gif!! tongue.gif (mały kodzik a ciesze się jak dziecko tongue.gif)
marcini82
Sprawdzic system mozna tez tak:
  1. <?php
  2. if (isset($_ENV['OS']) and strstr($_ENV['OS'], 'Windows')){
  3.  // to Windows
  4. }else{
  5. // to nie Windows
  6. }
  7. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.