Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] $WINDIR - co to takiego ?
Forum PHP.pl > Forum > Przedszkole
RoxyFox
Witam!
Uczę się z książki i tam jest taki przykład. Skrypt ma za zadanie wyświetlić kilka informacji o jakimś pliku(rozmiar data utworzenia itd.) Oto on:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Untitled Document</title>
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. function date_str($timestamp) {
  11. $date_str = getdate($timestamp);
  12. $year = $date_str["year"];
  13. $mon = $date_str["mon"];
  14. $mday = $date_str["mday"];
  15. $hours = $date_str["hours"];
  16. $minutes = $date_str["minutes"];
  17. $seconds = $date_str["seconds"];
  18. return "$hours:$minutes:$seconds $mday/$mon/$year";
  19. }
  20.  
  21. function file_info($file) {
  22. global $WINDIR;
  23.  
  24. $file_info_array["wielkosc"] = number_format(filesize($file)) . " bajtów.";
  25. $file_info_array["data_ost_zmiany"] = date_str(filectime($file));
  26. $file_info_array["data_ost_modyf"] = date_str(filemtime($file));
  27.  
  28. if (!isset($WINDIR)) {
  29. $file_info_array["data_ost_dostepu"] = date_str(fileatime($file));
  30. $file_info_array["grupa"] = filegroup($file);
  31. $file_info_array["wlasciciel"] = fileowner($file);
  32. }
  33. $file_info_array["typ"] = filetype($file);
  34. return $file_info_array;
  35. }
  36.  
  37. $filename = "plik.txt";
  38. $file_info_array = file_info($filename);
  39.  
  40. foreach ($file_info_array as $key => $val) echo "$key => $val<br>";
  41. ?>
  42. </body>
  43. </html>

Problem jest taki: Nie wiem po co te dwie linie:
  1. <?php
  2. global $WINDIR;
  3. ?>

i
  1. <?php
  2. if (!isset($WINDIR)) {
  3. ?>

Do czgo to wogóle służy ? Co to za zmienna $WINDIR i z kąd ona jest. Jak wytne te linie to skrypt dalej działa prawidłowo więc po co to ?
Fipaj
Na pewno w książce jest napisane! Poszukaj informacji o zmiennych globalnych.

Zmienna globalna to taka zmienna, która jest widoczna poza funkcją, która jej używa. Tylko, że zmienne globalne są evil ;-)
ActivePlayer
podpowiem Ci, ze jesli php jest zainstalowane na linuksie to zmienna windir nie istnieje.
dr_bonzo
Tam chyba jest przechowywana sciezka do kadalogu Windowsa (zgaduje), no chyba ze ta zmienna zostala gdzies indziej zdefiniowana (to jest caly skrypt?).


edit: zgadza sie --> $_ENV[ 'WINDIR' ]
RoxyFox
Wiem co to są zmienne globalne. Tylko właśnie po co mi ta ścieżka? Co on sprawdza czy mam zainstalowaniego windowsa tak ? I jeśli mam na windzie to tego nie zrobi a jak mam linuksa to zrobi?
dr_bonzo
To jest dosyc cienki (w linuxie: WINDIR=/some/path) sposob na sprawdzanie czy masz windowsa, jesli go nie masz to skrypt pobiera dodatkowe informacje o pliku.
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.