Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> explode() w pętli for
mat_1200
post 25.04.2006, 20:56:16
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.12.2005

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


Mam kodzik:

  1. <?
  2.  
  3. $fd = fopen("main.dat", "r");
  4. $dane = fread($fd, filesize("main.dat"));
  5. fclose($fd);
  6.  
  7. $ile = explode("|", "$dane");
  8.  
  9. for($x = 0; $ile = false; $x++){  // 
  10. $wpis = explode(":", $ile[$x]);
  11. $autor = $wpis[0];
  12. $cont = $wpis[1];
  13. $mail = $wpis[2];
  14. $time = $wpis[3];
  15. $num_gg = $wpis[4];
  16.  
  17. <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="346" height="123">
  18. <tr>
  19. <td width="90" height="105" rowspan="2">&nbsp;</td>
  20. <td width="250" height="19">Autor <a href="mailto:'.$mail.'">'.$autor.'</a></td>
  21. </tr>
  22. <tr>
  23. <td width="250" height="86">'.$cont.'</td>
  24. </tr>
  25. <tr>
  26. <td width="346" height="14" colspan="2">GG:'.$num_gg.'<img src="http://www.gadu-gadu.pl/users/status.asp?id='.$num_gg.'&styl=<2>"></td>
  27. </tr>
  28. </table>
  29. ';
  30. }
  31.  
  32.  
  33. ?>


W pliku mam zapisane wszystkie danew pliku main.dat. Wczytuje z tego pliku dane, a następnie exploduje i wychodzą mi dane jednego wpisu... W pętli for jest problem ...Chce by kod odczytał z danych wszystkie informacje i wypisywal...Pomózcie...
Go to the top of the page
+Quote Post
Master Miko
post 25.04.2006, 21:02:25
Post #2





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Najpiew podaj jak wygląda plik main.dat (w jakim formacie są zapisane dane)

Po pierwsze początek tabeli daj poza pętlą FOR. Po drugie co to za warunek $ile = false? Raczej powinieneć policzyć ile jest linijek lub oddzielnych wpisów i zrobić warunek $x < $iloscwierszy


--------------------
Go to the top of the page
+Quote Post
mat_1200
post 25.04.2006, 21:07:31
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.12.2005

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


A jaka funkcja moge obliczyc ilosć linijek??
Go to the top of the page
+Quote Post
Master Miko
post 25.04.2006, 21:09:43
Post #4





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


1. NAJPierw powiedz jak zapisujesz te dane! Jaki to jest format!


  1. <?
  2. $f=fopen("s.txt","w"); // to wczytuje całość
  3.  
  4. foreach($f as $line)   // tu masz podział na linie
  5. {
  6.  
  7. }
  8. fclose($f);
  9.  
  10. ?>


ale chyba w tym przypadku linijki Ci się nie przydadzą. Musisz powiedzieć jaki masz ten format (przykładowe wartości z pliku dat)

Ten post edytował Master Miko 25.04.2006, 21:13:26


--------------------
Go to the top of the page
+Quote Post
mat_1200
post 25.04.2006, 21:14:35
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.12.2005

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


dane1:dane2:dane3|dane1:dane2:dane3

| oznacza, że jest nowy post
Go to the top of the page
+Quote Post
matrach
post 25.04.2006, 21:15:33
Post #6





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 17.04.2006

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


  1. <?php
  2.  
  3. //...
  4. $ile = explode("|", "$dane");
  5.  
  6. for($x = 0; $x < count($ile); $x++)
  7. {  
  8. $wpis = explode(":", $ile[$x]);
  9. $autor = $wpis[0];
  10. //....
  11.  
  12. ?>

count()
Go to the top of the page
+Quote Post
Master Miko
post 25.04.2006, 21:17:57
Post #7





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


No w Twoim przypadku trzeba zastosować funkcje count, tak jak napisał matrach bo np. większość ludzi robi, że zamiast znaku | dają poprostu break - czyli enter, jako kolejny wiersz smile.gif


--------------------
Go to the top of the page
+Quote Post
FiDO
post 25.04.2006, 21:23:36
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


mat_1200: raportowanie sluzy do zglaszania naruszen regulaminu, a nie do podziekowan.

PS. przenosze na "Przedszkole"


--------------------
Brak czasu :/
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: 19.07.2025 - 10:40