Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wczytywanie danych z pliku., co druga linie?
Zedd
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.02.2008

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


Witam.

Mam prostu kod ktory wczytuje mi dane z pliku.
CODE
$name = 'blabla.txt';
$handle = fopen($name, 'r');
$text = fread($handle, filesize($name));
$lines = explode("|", "$text");
foreach ($lines as $line_num => $line) {
$sublines = explode(",", "$line");
foreach ($sublines as $subline_num => $subline) {
echo "---Podlinia #{$subline_num} : " . htmlspecialchars($subline) . "
\n";
}
}
?>


Jest niedopracowany, co zrobie pozniej, ale problem polega na tym z plik jest zbudowany tak, ze na zmiane znajduja sie w nim kategorie i opisy:

kategoria1|
opis1|
kategoria2|
opis2| itd.

Ten kod wyswietla wszystko linia pod linia, tak jak jest to w pliku(mniej wiecej).
A calosc potrzebuje wyswietlic w dwoch kolumnach na stronie, w lewej kategorie, w prawej opisy. Czy da sie w jakis sposob napisac kod ktory bedzie odczytywal plik i w odpowiedni sposob ukladaj go na stronie? Do glowy przychodzi mi odczytywanie najpierw parzystych a pozniej nieparzystych linii, albo dwoch zmiennych naraz, czy jest to mozliwe?

Z gory dziekuje za odpowiedz.

Z gory dziekuje za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nowotny
post
Post #2





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


A ja nie wiem po co się tak bawisz...
  1. <?php
  2. $name = 'blabla.txt';
  3. $lines = file($name);
  4. $i=1;
  5. foreach ($lines as $line) {
  6. echo $line.' ';
  7. if (($i % 2)==0) echo '<br>';
  8. $i++;
  9. }
  10. ?>

Nie rozumiem po co na końcu każdej lini wstawiasz pionową kreskę... coś tam będzie za nią później...?
Nie możesz zrobić pliku tak:

kategoria1|opis1
kategoria2|opis2
...?
Go to the top of the page
+Quote Post
em1X
post
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Tak chyba lepiej ? I nie trzeba obliczać modulo.

  1. <?php
  2. $name = 'blabla.txt';
  3. $lines = file($name);
  4.  
  5. for ($i = 0; $i<count($lines); $i += 2)
  6. {
  7.  $linia =& $lines[$i];
  8.  
  9.  // to jest Twoja co druga linia
  10.  print $linia . '<br />';
  11. }
  12. ?>


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
nowotny
post
Post #4





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(em1X @ 8.02.2008, 13:38:16 ) *
  1. <?php
  2.  // to jest Twoja co druga linia
  3.  print $linia . '<br />';
  4. ?>

Z tym że on chce obie linie... jedna obok drugiej... a nie co drugą linię...
Go to the top of the page
+Quote Post
em1X
post
Post #5





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


zwracam honor, przeczytałem na szybko, że chce co drugą linię wstydnis.gif


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
Zedd
post
Post #6





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.02.2008

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


Dzieki nowotny, troche chaotycznie to opisalem, ale mam juz to o co mi chodzilo. Jakby ktos sie tym interesowal kod wyglada tak:
CODE

<?php
$name = 'blablabla.txt';
$lines = file($name);
foreach ($lines as $line) {
$data = explode("|", "$line");
echo $data[0].' - ';
echo $data[1].'.';
}
?>


a sam plik ma postac:

nazwa1|opis1
nazwa2|opis2  itd.

I to ladnie mi wyswietla nazwe obok opisu na stronie i przechodzi do drugiej linii, a musze miec to w roznych zmiennych zeby miec dwa echa ktore beda roznie formatowane... Chyba ze da sie to zrobic jeszcze prosciej ale skoro to juz to robi to jest git ^^ Dzieki jeszcze raz wszystkim.
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 Aktualny czas: 20.08.2025 - 07:36