Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie czy istnieją następne linie
Forum PHP.pl > Forum > Przedszkole
Morale
Poprzez pętle for i funkcję explode wczytuję na stronę 'id=1' 5 newsów, na stronę 'id=2' kolejne 5 newsów itd.

Czy ma ktoś pomysł jak sprawdzić czy istnieje chociaż jeszcze jedna linia więcej aniżeli to co wczytałem questionmark.gif

Próbowałem funkcją file _exists i $plik[$j] ($j = i+1;) ale nie działało...
loff
zeby wiedziec czy istnieje nastepna linia musisz wiedziec :
a) w ktorej ty jestes aktualnie linii
cool.gif ile linii jest w ogóle w całym pliku
Majac te informacje sprawdzasz czy linia w ktorej ty jestes +1 jest wieksza od liczby linii w całym pliku.

Tyle teorii a bez pokazania kodu tego co stworzyłeś to inaczej nie pomogę. A no i czytaj manual czasem bo jak widze ze uzywasz file _exists do sprawdzenia czy kolejna linia w pliku istnieje to płakać sie chce.
Morale
A jakiej funkcji używać questionmark.gif
loff
Cytat(Morale @ 10.01.2008, 11:29:43 ) *
A jakiej funkcji używać questionmark.gif

Używać do czego? Nie ma funkcji która sprawdza czy jest kolejna linia w pliku (a przynajmniej ja nie słyszałem o takiej), trzeba to zrobic tak jak wczesniej napisałem. Wczytujesz plik za pomocą file() a potem sprawdzasz wielkosc tablicy i porownujesz z miejscem gdzie jestes+1

  1. <?php
  2. $arr = file(plik_z_danymi.txt);
  3. $ile = count($arr);
  4. $miejsce_w_ktorym_jestes +=1 ...// czyli offset, miejsce od ktorego chcesz sprawdzac..
  5.  
  6. if($miejsce_w_ktorym_jestes>$ile)
  7. {
  8.  // wtedy nie ma nastepnej lini
  9. }
  10. else
  11. { 
  12. //linia istnieje
  13.  
  14. }
  15. ?>


Wykaz troche samodzielności bo w takim tempie modek znowu zamknie Ci topik...
dadexix
jak rozumiem plik dzielisz na poszególne linie za pomocą explode... potem każde "pole" tablicy z explode to jedna linia...

ktoś chce wyświetlić strone nr 4 więc będą to linie(elementy tablicy) od 20 do 24.. a jeśli są jakieś następne elementy - sprawdzasz przez isset

przykład
  1. <?php
  2. $plik = file_get_contents($plika);
  3. $explode = explode("\n",$plik);
  4. $ile = $_GET[strona] * 5;
  5. $ile2 = $ile - 5; 
  6. /* Tak! -5 a nie -1!! a dlaczego? bo trzeba -1 ponieważ tablice są od jeden a nie od zero, a ta wartość jest potrzebna do spr
    awdzenia czy istnieje w ogóle strona która ktoś chce wyświetlić... załóżmy że nas
    tronie która user chce zobaczyć będą 2 linie(bo była by to ostatnia strona)... a Ty sprawdzasz czy jest linia piąta... i co? user nie dostaje wyników... a 2 linie nie są w ogóle wyświetlane!i się... "marnują".. a tak to pokaże np. 3 linie jeśli całkowita liczba lini w pliku to 18 a 
    strona jest 4:) */
  7. if(isset($explode[$ile2]){ //sprawdzamy czy strona którą chce user wyświetlić istnieje
  8. $tn = isset($explode[$ile2]); //w tej lini mamy wartość logiczną czy następna strona po tej wyświetlanej istniej
    e(a dokładniej czy jest chociaż jedna linia więcej niż userowi pokazujesz)
  9. //jeśli w $tn masz TRUE to znaczy że jest jeszcze co najmniej jedna strona... jeśli masz FALSE to znaczy że userowi pokazujesz ostatn
    ią stronę...
  10. }
  11. ?>



to jest tylko dość dobrze(mam nadzieje?) opisany przykład jak poradzić sobie z problemem... możesz na tym bazować możesz zrobić coś podobnego, możesz to przerobić...(również możesz powiedzieć że moja robota nie potrzeba:/)
Morale
Cytat(loff @ 10.01.2008, 11:38:29 ) *
Używać do czego? Nie ma funkcji która sprawdza czy jest kolejna linia w pliku (a przynajmniej ja nie słyszałem o takiej), trzeba to zrobic tak jak wczesniej napisałem. Wczytujesz plik za pomocą file() a potem sprawdzasz wielkosc tablicy i porownujesz z miejscem gdzie jestes+1

  1. <?php
  2. $arr = file(plik_z_danymi.txt);
  3. $ile = count($arr);
  4. $miejsce_w_ktorym_jestes +=1 ...// czyli offset, miejsce od ktorego chcesz sprawdzac..
  5.  
  6. if($miejsce_w_ktorym_jestes>$ile)
  7. {
  8.  // wtedy nie ma nastepnej lini
  9. }
  10. else
  11. { 
  12. //linia istnieje
  13.  
  14. }
  15. ?>


Wykaz troche samodzielności bo w takim tempie modek znowu zamknie Ci topik...



Spytałem się tylko jak sprawdzić czy istnieje dana linia (twoim sposobem)... Kod na sprawdzanie już sobie napisałem sam.

@dadexix - robota potrzebna, zrozumiałem, że sprawdza się issetem. dzięki
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.