Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Sprawdzanie wersji
terreska
post 5.08.2006, 22:37:29
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
mike
post 5.08.2006, 22:41:09
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
MagnuM
post 5.08.2006, 22:45:14
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Jelenia Góra

Ostrzeżenie: (0%)
-----


Funkcja readfile zwraca liczbę odczytanych bajtów z pliku. Wyczytałem z manuala ale nie wiem o co chodzi ?


--------------------
Go to the top of the page
+Quote Post
terreska
post 5.08.2006, 22:49:43
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mike
post 5.08.2006, 22:50:09
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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()
Go to the top of the page
+Quote Post
MagnuM
post 5.08.2006, 22:55:35
Post #6





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Jelenia Góra

Ostrzeżenie: (0%)
-----


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 ;-)

Ten post edytował MagnuM 5.08.2006, 23:06:08


--------------------
Go to the top of the page
+Quote Post
mike
post 5.08.2006, 23:00:55
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


~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. ?>
Go to the top of the page
+Quote Post
terreska
post 5.08.2006, 23:02:25
Post #8





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

Ostrzeżenie: (0%)
-----


Dziękuję za pomoc. Już wszystko gra guitar.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 02:15