Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odczytanie pierwszych 12 linii
Forum PHP.pl > Forum > Przedszkole
cienki bolek
potrzebuję zrobić tak, żeby program odczytywał 12 pierwszych linii z pliku i wyświetlał je na stronie, oraz aby pozostałe linie (powyżej 12) były wyświetlane w innym miejscu, zrobi mi to ktoś? pliz!
SongoQ
Zaladuj do tablicy i wtedy w petli dasz zakres indeksow.
cienki bolek
tak tak tylko jak? napisz mi kod gotowy, prosze
nospor
funkcja file($nazwa_pliku) zwraca tablicę, której elemetnami są wiersze pliku. teraz tylko wystraczy wyswietlic pierwse 12 elemntów i po sprawie.
Zrób sam
mike
Za pomocą funkcji file()" title="Zobacz w manualu PHP" target="_manual wczytaj zawartość do tablicy. Na tablicy, którą zwróci file() dwa razy zadziałaj funkcją array_slice()" title="Zobacz w manualu PHP" target="_manual raz wybierając cząść tablicy do indeksu 12, raz powyżej. Za każdym razem dostaniesz tablicę.
Potem wyświetl te dwie tablice używając do tego, na przykład foreach" title="Zobacz w manualu PHP" target="_manual i echo" title="Zobacz w manualu PHP" target="_manual.

Żeby do czegoś dojść trzeba wykazać inicjatywę.
Ludzie nie lubią pisać gotowców.
cienki bolek
aha okej czyli juz sobie poradze
SongoQ
@cienki bolek szuka rozwiazania a nie pomyslow. Pomysl troszeczke smile.gif
cienki bolek
no rozwiazania szukam bo nie umiem php ale nastepnym razem postaram sie sam rozkminic jak cos zrobic


no i zrobilem, ale nie dziala, co jest nie tak?
  1. <?php
  2. $text = file('test.txt');
  3. $text1 = array_slice ($text, 0, 12);
  4. $text2 = array_slice ($text, 12);
  5. foreach($text1 as $linia) {echo &#092;"$linia\"};
  6. echo &#092;"12 linii\";
  7. foreach($text2 as $linia) {echo &#092;"$linia\"};
  8. ?>
Spike
  1. <?php
  2. $text = file('test.txt');
  3. $text1 = array_slice ($text, 0, 12);
  4. $text2 = array_slice ($text, 12);
  5. foreach($text1 as $linia) { echo &#092;"$linia\"; }
  6. echo &#092;"12 linii\";
  7. foreach($text2 as $linia) { echo &#092;"$linia\"; }
  8. ?>
cienki bolek
zrobilem tai plik index.php:
  1. <?php
  2. $go=$_GET['go']; 
  3. switch($go)
  4. {
  5. case &#092;"\": $tytul = aktualnosci; $text = file('aktualnosci.txt'); global $tytul; global $text;
  6. case &#092;"1\": $tytul = aktualnosci; $text = file('aktualnosci.txt'); global $tytul; global $text;
  7. case &#092;"2\": $tytul = about; $text = file('about.txt');
  8. case &#092;"3\": $tytul = bity; $text = file('bity.txt');
  9. case &#092;"4\": $tytul = portfolio; $text = file('portfolio.txt');
  10. case &#092;"5\": $tytul = linki; $text = file('linki.txt');
  11. default: $tytul = aktualnosci; $text = file('aktualnosci.txt');
  12. }
  13. $text1 = array_slice ($text, 0, 24);
  14. $text2 = array_slice ($text, 24);
  15. ?>
  16. <html><head>
  17. <title>..:: www.pjanie.prv.pl :: <?php echo &#092;"$tytul\"; ?> ::..</title>
  18. //html
  19. <?php foreach($text1 as $linia) { echo &#092;"$linia<br>\"; } ?>
  20. //html
  21. <?php foreach($text2 as $linia) { echo &#092;"$linia<br>\"; } ?>
  22. //html
  23. <?php echo &#092;"$tytul\"; ?>
  24. //html


i w tym pliku gdzies tam posrod kodu html ktorego tu^^^^ nie wklejalem jest link np index.php?go=2 i jak klikam na ten link to owszem pojawia sie index.php ale wyswietla sie tresc tak jakby "parametr" (czy jak to sie zwie) byl 1 czyli:
Kod
case "1": $tytul = aktualnosci; $text = file('aktualnosci.txt'); global $tytul; global $text;

albo
Kod
default: $tytul = aktualnosci; $text = file('aktualnosci.txt');

nie jestem pewnien ktore sie wyswietla

co jest nie tak?
Jabol
file to jedna z najgorszych funkcji, jakie autorzy php zrobili użytkownikom. Dzięki tej funkcji użytkownicy uczą się, że trzeba walić w drzwi aż pękną, a nie pociągnąć za klamkę. Po co ładować cały plik do pamięci, skoro wcale nie jest to potrzebne?
  1. <?php
  2. $go=isset($_GET['go'])?$_GET['go']:NULL;
  3. switch($go)
  4. {
  5. case &#092;"2\": $tytul = \"about\"; $file='about.txt'; break;;
  6. case &#092;"3\": $tytul = \"bity\"; $file='bity.txt'; break;;
  7. case &#092;"4\": $tytul = \"portfolio\"; $file='portfolio.txt'; break;;
  8. case &#092;"5\": $tytul = \"linki\"; $file='linki.txt'; break;;
  9. case NULL:
  10. case &#092;"1\":
  11. default: $tytul = &#092;"aktualnosci\"; $file='aktualnosci.txt'; break;;
  12. }
  13. $fp=fopen($file, &#092;"r\");
  14. for($x=0; $x<12; $x++)
  15. {
  16.  print fgets($fp);
  17.  if(feof($fp)) break; // tak na wszelki wypadek
  18. }
  19. ?> blebleble
  20. <?php
  21. while(!feof($fp)) print fgets($fp);
  22. fclose($fp);
  23. ?>



A co do twojego pytania - każdy case musi być zakończony -> 'break;;'
cienki bolek
no dziala elegancko, ale...
chcialbym zamienic jakis ciag znakow z wczytywanego pliku .txt, np. <hr><br> na <hr color="red"> i probowalem preg_replace() i str_replace() ale mi cos nie dzialalo, jak to kurde zrobic?

edit: konkretnie to interesuje mnie zamiana znaku nowej linii na - i kilku innych latwiejszych:P
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.