Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Operacje na plikach tekstowych - Pomocy
Forum PHP.pl > Forum > Przedszkole
Giluś
Cześć chciałbym pobrać dane z pliku tekstowego, a następnie wyświetlić je na stronie w pętli - zrobiłem taki skrypt tylko ze nie wyświetla mi wszystkiego...

  1. <?php
  2. $file = file('teksty.txt');
  3.  
  4. foreach($file as $list) {
  5.  
  6. $exp = explode('\n', $list);
  7.  
  8. Jedna Linia: ".$exp[0]."<br />
  9. Druga Linia: ".$exp[1]."<br />
  10. Trzecia Linia: ".$exp[2]."<br />
  11. <br />
  12. ";
  13. }
  14. ?>


Plik teksty.txt

  1. [Tekst]
  2. UserPassword=lol
  3. ServerAdmin=0
  4. [Lol]
  5. UserPassword=kolo
  6. ServerAdmin=1


Na stronie wyświetla mi się tak:
  1. Jedna Linia: [Tekst]
  2. Druga Linia:
  3. Trzecia Linia:
  4.  
  5. Jedna Linia: UserPassword=lol
  6. Druga Linia:
  7. Trzecia Linia:
  8.  
  9. Jedna Linia: ServerAdmin=0
  10. Druga Linia:
  11. Trzecia Linia:
  12.  
  13. Jedna Linia: [Lol]
  14. Druga Linia:
  15. Trzecia Linia:
  16.  
  17. Jedna Linia: UserPassword=kolo
  18. Druga Linia:
  19. Trzecia Linia:
  20.  
  21. Jedna Linia: ServerAdmin=1
  22. Druga Linia:
  23. Trzecia Linia:



Nie wiem jak oddzielić linie bo raczej tutaj \n nie działa mi za dobrze ( chyba )





zordon
zamiast "\n" użyj stałej php PHP_EOL - na różnych systemach zawsze działa dobrze
... chyba, że to w pliku masz złe znaki nowej linii. Jak powyższe nie zadziała, przejedź każdy znak w stringu (przed explode) funkcją ord żeby zidentyfikować te znaki. Potem masz już z górki smile.gif
Crozin
Popatrz co w ogóle zwraca file i włącz sobie raportowanie wsztstkich błędów.
Giluś
Z moich przypuszczeń nie działa
  1. Druga Linia: ".$exp[1]."<br />
  2. Trzecia Linia: ".$exp[2]."<br />


ani exp[1], ani exp[2], tylko działa exp[0] i wyświetlane są tam wszystkie linie

Edit: jak zmienię w linii drugiej i trzeciej na exp[0] to wyświetla się takie coś:


  1. Jedna Linia: [Tekst]
  2. Druga Linia: [Tekst]
  3. Trzecia Linia: [Tekst]
  4.  
  5. Jedna Linia: UserPassword=lol
  6. Druga Linia: UserPassword=lol
  7. Trzecia Linia: UserPassword=lol
  8.  
  9. Jedna Linia: ServerAdmin=0
  10. Druga Linia: ServerAdmin=0
  11. Trzecia Linia: ServerAdmin=0
  12.  
  13. Jedna Linia: [Lol]
  14. Druga Linia: [Lol]
  15. Trzecia Linia: [Lol]
  16.  
  17. Jedna Linia: UserPassword=kolo
  18. Druga Linia: UserPassword=kolo
  19. Trzecia Linia: UserPassword=kolo
  20.  
  21. Jedna Linia: ServerAdmin=1
  22. Druga Linia: ServerAdmin=1
  23. Trzecia Linia: ServerAdmin=1



Edit:

Gdy użyje kodu :
  1. <?php
  2. $file = file('teksty.txt');
  3.  
  4.  
  5.  
  6. foreach($file as $list) {
  7.  
  8. echo "".$list."";
  9.  
  10. }
  11. ?>


Otrzymuje odpowiedz w przeglądarce:

  1. [Tekst] UserPassword=lol ServerAdmin=0 [Lol] UserPassword=kolo ServerAdmin=1


Gdy daje takie coś to wyświetla mi się normalnie tekst tak jak powinien tylko ja chce aby można było rozdzielić 1, 2, 3 linie - za bardzo nie wiem jak to zrobić

  1. $file = file('teksty.txt');
  2.  
  3. foreach($file as $list) {
  4.  
  5. $exp = explode('\n', $list);
  6.  
  7. Jedna Linia: ".$exp[0]."<br />
  8. <br />
  9. ";
  10. }
Valdi_B
Funkcja file(...) daje w wyniku tablicę.
Elementami tej tablicy są kolejne linie tekstu z tego pliku.
Dlatego funkcja explode('\n', $list); ("cięcie na kawałki" znakiem \n) nie ma sensu.
Cały wiersz będzie w elemencie 0, a pozostałe elementy:
- na początku w ogóle ich nie ma,
- są one tworzone (z pustą treścią) dopiero w momencie gdy próbujesz odczytać ich treść.

A może kolejne wiersze powinieneś dzielić na części np. wg znaku "=" (to co przed / to co po)?
A nawet jeżeli tak, to co chciałeś uzyskać w "trzecim fragmencie" ($exp[2])?
Giluś
Chciałem zrobić takie coś, wczytuje plik teksty.txt i robię pętle aby mi się powtarzały kolejne linijki z pliku teksty.txt

[Lol] - to bym chciał aby było - $exp[0]
UserPassword=kolo - to aby było - $exp[1]
ServerAdmin=1 - a to natomiast - $exp[2]

Jeszcze w między czasie chciałbym aby nie pokazywało mi na stronie nawiasów kwadratowych " [ ] ", oraz " UserPassword= " i "ServerAdmin= "
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.