Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sprawdzanie wersji
Forum PHP.pl > Forum > Przedszkole
terreska
Napisałam prosty skrypcik do sprawdzania wersji skryptu. Niestety coś jest nie tak.

  1. <?php
  2. $wersja="600";
  3. $sprawdz=readfile ("wersja.txt");
  4. if ($wersja>$sprawdz) {
  5. echo"Masz stara wersje skryptu.";
  6. } else{
  7. echo"Masz najnowsza wersje skryptu.";
  8. }
  9. ?>


plik wersja.txt zawiera tylko wpis: 400

Przestawiam znak > i < ale to nic nie daje. Raz albo wyświetla, że jest stara wersja, a raz że nowa ale cały czas nieprawidłowo.
mike
1. Sprawdź czy to co pobrałaś z pliku faktycznie zawiera to co ma zawierać.
2. Pozbądx się białych znaków na końcach. trim()
3. Zrzutuj wartości do liczb. W końcu porównujesz liczby prawda? Więc nie potzreba dawać tego w cudzysłowiach.
MagnuM
Funkcja readfile zwraca liczbę odczytanych bajtów z pliku. Wyczytałem z manuala ale nie wiem o co chodzi ?
terreska
Faktycznie, używam złej funkcji, gdyż ta funkcja zwraca wielkość pliku... Jakiej funkcji tutaj trzeba użyć?

Usunęłam cudzysłowy
  1. <?php
  2. $wersja=600;
  3. ?>


Nie mam białych znaków w pliku wersja.txt
mike
Cytat(MagnuM @ 5.08.2006, 23:45 ) *
Funkcja readfile zwraca liczbę odczytanych bajtów z pliku. Wyczytałem z manuala ale nie wiem o co chodzi ?

Oo, właśnie.
Kurcze nie zauważyłem wcześniej.

Ta funkcja czyta plik ale nie tak jak tutaj potrzeba tylko wlai do bufora.

~terreska w tej sytuacji nalezy zastosować na przykład file_get_contents() albo fopen() + fread()
MagnuM
Zakładając że wersja pliku znajduje się w pierwszej lini pliku:

  1. <?php
  2. $wersja = 600;
  3.  
  4. $sFileName = 'wersja.txt';
  5. $rFile = fopen( $sFileName, 'r' );
  6. $aFileLines = fread( $rFile, file_size( $sFileName ) );
  7.  
  8. if ( $wersja > $aFileLines[0] ) 
  9. {
  10. echo"Masz stara wersje skryptu.";
  11. } else
  12. {
  13. echo"Masz najnowsza wersje skryptu.";
  14. }
  15. ?>


EDIT: O w morde... to przez tą dzisiejszą pomoc dla ... :-) Poprostu już dzisiaj komuś odpisywałem na temat plików a tam była funcka fread ;p No ale już wsyztsko git ;-)
mike
~MagnuM pomyliłeś fread() z file() )
fread() nie zwraca tablicy, tylko stringa tongue.gif

Rozwiązanie:
  1. <?php
  2.  
  3. $intMinimumVersion = 600;
  4. $strFileContent = file_get_contents( './version.txt' );
  5.  
  6. if( $intMinimumVersion > (int)$strFileContent )
  7. {
  8. echo 'Masz złą wersję (za stara)';
  9. }
  10. else
  11. {
  12. echo 'Brawo. Wygrałes kartę wstępu do ustępu :)';
  13. }
  14.  
  15. ?>
terreska
Dziękuję za pomoc. Już wszystko gra guitar.gif
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.