Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]liczenie linii w pliku
Forum PHP.pl > Forum > Przedszkole
jarmiar
mam taki problem. otóż mam plik o pewnej nazwie
i zapisuje w nim dane na takiej zasadzie, że dopisywany jest tam kod html (tabele, kolory itp) a w nich dane pochodzące z formularzy.

i przykładowo dodaję jeden wpis i mam coś takiego:
  1. <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  2. <tr>
  3. <td width="100%">Tytu :<a href="jarmiar">Kolejna porcja rozrywki</a> </td>
  4. </tr>
  5. <tr>
  6. <td width="100%">Opis:&nbsp;Najlepszy blo rozrywkowy. Zajrzyj do mnie! </td>
  7. </tr>



wiem że jak dodam dwa wpisy to będzie tego 2 razy więcej.
teraz pytanie do Was jak z tego wyliczyć ile było wpisów?


-------------------------
do html'a też jest odpowiedni BBCode
~Cienki1980
nospor
$count = count(file('twoj plik')); - liczba linii pliku
$x - liczba linnii jaka zajmuje jeden wpis

$liczbaWpisow = $count/$x; - liczba wpisow.

Trudne?
jarmiar
ale ja to próbowałem już wcześniej tylko że mi to zwracało nieprawdziwe dane.
nospor
To pokaz jak probowales, bo najwyrazniej źle winksmiley.jpg
jarmiar
  1. <?
  2. $plik1 = file('katalog/biznes.php');
  3. if(empty($plik1))
  4.  {
  5.  echo('[pusto]');
  6.  }
  7.  else
  8.  {
  9.  $wynik = count($plik1);
  10.  $total = $wynik/5;
  11.  echo('['.$total.']');
  12.  }
  13. ?>
nospor
czemu dzielisz przez 5, skoro Twoj kazdy wpis ma 8 linii?

1)Posprawdzaj czy $wynik zawiera tyle linii co powinien.
2) ustosunkuj sie do tych 5 co pytalem
jarmiar
no własnie $wynik zwraca mi cały czas 1

a tych lini jest rzeczywiście więcej.
nospor
Cytat
no własnie $wynik zwraca mi cały czas 1
W takim razie Twoj plik ma tylko jedna linijke smile.gif
Podejrzyj go ręcznie jak on wyglada, czy oby napewno dobrze.
jarmiar
podglądam i ma tyle linijek ile podałem na samym początku
nospor
skoro Twoj plik ma 8 linijek, to kod:
  1. <?php
  2. $wynik = count(file('twoj plik'));
  3. echo $wynik;
  4. ?>

Nie ma prawa zwracac ci 1.
Cos motasz smile.gif
jarmiar
ok faktycznie jest jedna linia.


powiedz mi tylko jak ja mogę zrobić aby każdy nowy wpis zapisywało mi do osobnej linijki?
uli
Cytat(jarmiar @ 13.05.2007, 18:19:10 ) *
ok faktycznie jest jedna linia.
powiedz mi tylko jak ja mogę zrobić aby każdy nowy wpis zapisywało mi do osobnej linijki?


Taki "magiczny" znaczek \n w miejscu gdzie chcesz kończyć linię przy zapisie?? biggrin.gif
Cysiaczek
Można pokusić się też o zliczenie wystąpień \n w pliku. Metoda jest dość odporna na błędy.
  1. <?php
  2. $lines=substr_count($str, "n");
  3. ?>
jarmiar
próbowałem tak z tym "magicznym" znaczkiem \n:

  1. <?php
  2. $dane = '"n"<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%"><tr><td width="100%">Tytuł :<a href="'.$uzytkownik.'">'.$tytul_bloga.'</a> </td></tr><tr><td width="100%">Opis:&nbsp;'.$opis_bloga.' </td></tr></table>';
  3. ?>


ale to zamiast zaczynać się od noewj lini to zapisuje ten znaczek jako string do pliku i przy wyświetlaniu tego pliku wyświetla się:

\n i mój tekst.......scvsvfsv


dlaczego?
nospor
  1. <?php
  2. $dane = "n".'reszta twoich danych';
  3. ?>
Pyton_000
Poza tym to "\n" na koniec linijki, bo będziesz miał znowu przekłamanie +1 linijki smile.gif
jarmiar
nie działa!!!!

zamiast zapisywać od nowej linijki to zapisuje to \n w tym pliku tekstowym i wyświetla tak samo na mojej stronie
uli
Pokaż kod po modyfikacjach smile.gif
Przede wszystkim ten, który zapisuje.

Myślę, że to jest ta subtelna różnica, o której już prawie nikt nie pamięta: RÓŻNICA MIĘDZY APOSTROFAMI, A CUDZYSŁOWEM smile.gif
jarmiar
już sobie poradziłem, dzieki za pomoc!!!

pozdro smile.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.