Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Newsy, zapis na początku pliku
walonek
post 14.09.2009, 11:02:31
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2009

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


Cześć, próbowałem już 100 razy zrobić tak, żeby mi zapisywało nowe dane na początku pliku txt jednak nic nie działa sad.gif Próbowałem z funkcją rewind albo do zmiennej dodac nowe dane i wczytac jeszcze raz plik nic nie chce dzialac.
Oto kod:

  1. $temat = $_POST['temat'];
  2. $about = $_POST['about'];
  3. $zdjecie = $_POST['zdjecie'];
  4. $zdjecie2 = '<br><center><img src="'.$zdjecie.'"/></center>';
  5.  
  6. echo '<h1><center>News został dodany ;-)</center></h1>';
  7. echo '<h2><center>Temat: '.$temat.
  8. '<br>Treść: '.$about.
  9. '<br>Fotka: '.$zdjecie2.'</center>';
  10.  
  11. $news = '<center><table width="500" height="400"/><tr><td width="20%"><b><center><h3>News: </b>'.$temat.'</center></h3></td></tr><tr><td height="90%" valign="top"><b><center> Treść newsa: </b>'.$about.'<br>'.$zdjecie2.'</center></td>';
  12.  
  13.  
  14.  
  15. $plik="news.txt";
  16. $fp = fopen ("news.txt", "x") ;
  17.  
  18.  
  19. fputs($fp, $news);
  20. fclose($fp);
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
askone
post 14.09.2009, 11:09:36
Post #2





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Hej

A jakie znaczenie ma kolejność zapisu newsów w pliku txt? Sterować kolejnością wyświetlania możesz przecież poprzez skrypt wyświetlający. Wystarczy, iż zaczniesz czytać tablicę z newsami od końca posuwając się do początku...

Linki:
prev()
end()

Pozdrawiam


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
walonek
post 14.09.2009, 11:22:24
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2009

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


Chce zapisać na poczatku, bo później łatwiej to wyświetlić. A o tablicach i jak z nich korzystać nie mam zielonego pojęcia próbowałem coś , ale lipa. Więc jak zapisać txt na początku ?

Nawet jeśli to wczytam do tablicy to jak mi odczytak kod z takiego pliku ?

tak wyglada tresc pliku txt: <center><table width="500" height="400"/><tr><td width="20%"><b><center><h3>News: </b>Joli chlop</center></h3></td></tr><tr><td height="90%" valign="top"><b><center> Tre¶ć newsa: </b>jest brzydki<br><br><center><img src="http://e4.pudelek.pl/p2714/77880b02001094974aac1ce3"/></center></center></td><center><table width="500" height="400"/><tr><td width="20%"><b><center><h3>News: </b>Burj al arab</center></h3></td></tr><tr><td height="90%" valign="top"><b><center> Tre¶ć newsa: </b>7 gwiazdkowy hotel jedyny na swiecie<br><br><center><img src="http://www.flashydubai.com/images/8WondersofDubai_Burj_Al_Arab.jpg"/></center></center></td>

Są to tylko 2 newsy.
Go to the top of the page
+Quote Post
askone
post 14.09.2009, 11:38:32
Post #4





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Jedno słowo - masakra...

Po co zapisujesz cały kod HTML? W pliku zapisz tylko treść newsa i inne wymagane parametry np. datę dodania, osobę dodającą. Całą resztę czyli formatowanie tego do HTML zrób w PHP.

ps. poczytaj też o stylach CSS... i te tabelki....

Ten post edytował fly474 14.09.2009, 11:39:28


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
Fafu
post 14.09.2009, 11:42:29
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


Nie wiem czy dziala bo pisalem tu na forum:
  1. <?php
  2. function zapiszNaPoczatku($plik, $tekst) {
  3. $dane = file_get_contents($plik);
  4. file_put_contents($plik, $tekst."\n".$dane);
  5. }
  6. ?>


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
walonek
post 14.09.2009, 11:47:31
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2009

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


Ok poradziłem sobie na własny sposób, w pliku który ma wyświetlać newsy umieściłem taki kod:

  1. $uk = fopen("news.txt", r);
  2. $tas = fread($uk, filesize("news.txt"));
  3. $tas = file_get_contents("news.txt");
  4. $ex = explode("|", $tas);
  5. echo "$ex[0]<br>";
  6. echo "$ex[1]<br>";


Teraz moje pytanie brzmi jak napisać pentle która automatycznie będzie odczytywała najnowsze wpisy i dawała je na początku. Można to robić ręcznie, ale duużo roboty ?

Do fly474: mozesz mi dokladniej wyjaśnić to formatowanie bo jedyne na co wpadłem to właśnie cale formatowanie zapisac w pliku txt.
Go to the top of the page
+Quote Post
askone
post 14.09.2009, 11:53:16
Post #7





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Przyjmijmy że w pliku tekstowym masz taką strukturę:
Kod
nr_newsa|data_dodania|tresć_newsa|

W każdej linii jest osobny wpis. Po odczytaniu zawartości takiego pliku i wrzuceniu do tablicy iterujesz poprzez foreach przez tę tablicę i dajesz:
Kod
<tr><td>{data}</td><td>{tresc}</td><tr>


Oczywiście {data} i {tresc} to odpowiednie pola z Twej tablicy z newsami. A moja uwaga odnośnie formatowania dotyczyła umieszczania stylu w każdym elemencie... Aby uniknąć takiego bałaganu w pliku wystarczy nadać każdemu elementowi identyfikator lub klasę i odpowiednio zadeklarować styl dla tego identyfikatora lub klasy w osobnym pliku CSS.

ps. Oczywiście stosowania tabelek nie polecam smile.gif

Ten post edytował fly474 14.09.2009, 11:55:15


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
walonek
post 14.09.2009, 11:57:12
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2009

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


fly474 mógłbyś to pokazać na moich zmiennych i na moim przykładzie, bo tak na sucho nic mi to niestety nie mówi.

  1. $p=fopen("news.txt", "r");
  2. $dalej=fread($p, filesize("news.txt")); /* specjalny kod umieszczany między notatkami może być dowolny */
  3. $ide=explode("|", $dalej); $st="0"; /* wlaściwa postać pętli */
  4. while ($ide[$st] > "")
  5. {
  6. echo"$ide[$st]"; $st++;
  7.  
  8. }


Znalazłem taką pentle, jak ją przerobić żeby czytała od tyłu plik ?

Ten post edytował walonek 14.09.2009, 12:01:58
Go to the top of the page
+Quote Post
askone
post 14.09.2009, 12:11:05
Post #9





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


  1. <?php
  2. $news_array = array();
  3. $handle = @fopen("news.txt", "r");
  4. if ($handle) {
  5. while (!feof($handle)) {
  6. $buffer = fgets($handle, 4096);
  7. $item = array();
  8. $item['nr'] = strtok('|', $buffer)
  9. $item['data'] = strtok('|');
  10. $item['tresc'] = strtok('|');
  11.  
  12. $_news_array[] = $item;
  13. unset($item);
  14. }
  15. fclose($handle);
  16. }
  17. if(is_array($news_array))
  18. {
  19. foreach($news_array as $news)
  20. {
  21. i tutaj wyświetlaj....
  22. }
  23. }
  24. ?>


pisałem na sucho, więc mogą być literówki lub błędy składni. Jeśli i teraz nie załapiesz o co chodzi to skieruj się tutaj


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
walonek
post 14.09.2009, 12:23:40
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2009

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


Chyba sie poddaje nie mam pojecia jak to wyswietlic i czy to wogole dziala print_r($news_array); nic nie wyswietla wiec chyba cos jest nie tak.
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 - 14:45