Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wczytanie z pliku
afick
post 21.04.2006, 10:49:58
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.03.2006

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


chce zrobic wczytywanie z pliku zmieniajacego sei textu ale tylko zeby sie wyswietliły 4-5 ostanich wiadomości, jseli skrypt napotka na coa takiego <img src="jakisplik.jpg> zeby zilczył je i jak osiagnie 5 zaprzestał wyswietlania dalej pliku

Ten post edytował afick 21.04.2006, 10:51:00
Go to the top of the page
+Quote Post
LBO
post 21.04.2006, 11:47:23
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


A ja chcę, żeby szef dawał mi wolne za każdym razem jak go o to poproszę.

A gdzie masz kod (choc trochę)? Gotowca nie dostaniesz (przynajmniej nie tak od razu tongue.gif).

Manual
Go to the top of the page
+Quote Post
afick
post 21.04.2006, 12:33:08
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.03.2006

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


  1. <?php
  2. function plik () {
  3. $plik = fopen("./plik.txt","r");
  4. $czytaj = fread($plik,10000);
  5. echo $czytaj;
  6. fclose($plik);
  7.  
  8. }
  9.  
  10. echo plik();
  11.  
  12. ?>


tutaj kod tylko jak go zmodyfikowac pewnie jakies if i jakis licznik by sie prydało wstawic biggrin.gif jeszcze postaram sie pomyslec ale brak mi pomysłów na modyfikacje tego ale dzieki za link popatrze biggrin.gif poczytam zastosuje tongue.gif


kod mam taki tylko on ma jedna wade ze wyswietla mi krzaki na polskich literkach a zeby bylo smieszniej to jedne sa dobrze wyswietlane jedne inne nie
Go to the top of the page
+Quote Post
Vogel
post 21.04.2006, 12:54:38
Post #4





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

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


no. to jest po prostu wyswietlany czysty pliczek z newsami.
bardzo kiepski sposob na trzymanie newsow (wlasnie stad masz problem).


--------------------
Go to the top of the page
+Quote Post
_bezimienny
post 21.04.2006, 15:19:38
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 19.03.2006
Skąd: Wisła

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


Spróbuj zorbić tak żeby każdą wiadomość zapisywało do osobnego pliku.
Potem czytasz folder funkcją readdir($folder) a następnie w pętli np. while czytasz pliki. Potem wystarczy tylko wyświetlić.
Go to the top of the page
+Quote Post
slash12345
post 21.04.2006, 20:10:07
Post #6





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 21.04.2006

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


Problem: potrzebujesz systemu przechowywania wiadomości w jednym pliku, bez wywoływania zamieszania.
Rozwiązanie: poniższy kod (kompletny zestaw funkcji do wykorzystania) lub mySQL (lepsze niż pliki)
  1. <?
  2. /*
  3. czytaj zwraca tablicę kilku ostatnich wpisów w pliku $plik. Liczbe wpisow do zwr
    ocenia okresla zmienna $liczba.
  4. */
  5. function czytaj($plik,$liczba=5)
  6. {
  7. $zaw = file($plik);
  8. foreach($zaw as $zk => $zv) { if ($zv === "") unset($zaw[$zk]); }
  9.  if (count($zaw) > $liczba)
  10.  {
  11. $zaw = array_slice($zaw,count($zaw)-$liczba);
  12.  }
  13. return $zaw;
  14. }
  15.  
  16. /*
  17. wypisz wypisuje dane z tablicy (np. otrzymanej za pomoca czytaj), umieszczajac na koncu kazdego wpisu ciag znakow $delimit.
  18. */
  19. function wypisz($arr,$delimit="<br />")
  20. {
  21.  if (is_string($arr)) print($arr);
  22.  elseif (is_array($arr))
  23.  {
  24. foreach ($arr as $k => $v) print($v.$delimit);
  25.  }
  26. }
  27.  
  28. /*
  29. dodajwpis dodaje wpis (lub kilka jesli $wpis to tablica) do pliku $plik, przetwarzajac dane wejsciowe za pomoca funkcji ktorej nazw
    e przekazujemy jako trzeci parametr.
  30. */
  31. function dodajwpis($plik,$wpis,$obrobka="nl2br")
  32. {
  33. $pzaw = file($plik);
  34. if (is_string($wpis))
  35.  {
  36. $pzaw[] = $obrobka($wpis);
  37.  }
  38.  else if (is_array($wpis))
  39.  {
  40. foreach ($wpis as $wk => $wv) $pzaw[] = $obrobka($wv);
  41.  }
  42. $p1 = fopen($plik,"w") or die("<span style=\"color: #FF0000;\"><br />Błąd otwierania pliku {$plik}, sprawdź prawa dostępu.</span><br />");
  43.  foreach ($czaw as $ck => $pv) { $pv = str_replace("\n","",$pv); fputs($p1,$pv."\n"); }
  44. fclose($p1);
  45. }
  46.  
  47. /*
  48. usuwa z pliku $plik wpis numer $nrwpisu (liczac od zera). Przydatne zwlaszcza przy dynamicznym generowaniu formluarzy edycyjnych, g
    dy mamy radio lub checkboxy. W wypadku podania tablicy jako drugiego parametru, u
    suniete zostana wpisy o numerach odpowiadajacym wartosciom tablicy.
  49. */
  50. function usunwpis($plik,$nrwpisu)
  51. {
  52. $czaw = file($plik);
  53. if (is_int($nrwpisu)) unset($czaw[$nrwpisu]);
  54. else if (is_array($nrwpisu))
  55.  {
  56. foreach ($nrwpisu as $nk => $nv) unset($czaw[$nv]);
  57.  }
  58. $p1 = fopen($plik,"w") or die("<span style=\"color: #FF0000;\"><br />Błąd otwierania pliku {$plik}, sprawdź prawa dostępu.</span><br />");
  59.  foreach ($czaw as $ck => $cv) { $cv = str_replace("\n","",$cv); fputs($p1,$cv."\n"); }
  60. fclose($p1);
  61. }
  62. ?>


Przepraszam za napisanie tego tutaj, mogłem wprawdzie dać to do gotowców...

Ten post edytował slash12345 22.04.2006, 09:48:51


--------------------
Kod
thewanderer@debian:~$ sudo apt-get dist-upgrade
Konieczne pobranie 666KB pakietów. Czy chcesz kontynuować? [T/n] nieeeeeeee
Go to the top of the page
+Quote Post
afick
post 25.04.2006, 21:39:29
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.03.2006

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


witam to znowu jak wiec tak poszłem za sugestja wasza i napisałem cos dla bazy tylko ze zle mi wyswietla date

do strony includuje sobie pliczek ktory wyglada tak (juz po przeróbkach)

  1. <?
  2. require ("./config/config.php");
  3. $connection = mysql_connect($db_host, $db_user, $db_password) or die ("error");
  4. mysql_select_db($db_name, $connection);
  5.  
  6. $query= "SELECT * FROM afick ORDER BY autoID";
  7. $result = mysql_query($query, $connection) or die (mysql_error());
  8.  
  9. for ($i = 0; $i < mysql_num_rows($result); $i++ )
  10. {
  11. $news = mysql_result($result, $i, "news");
  12. $show_news = nl2br($news);
  13. $data = mysql_result($result, $i, "data");
  14. $show_date = date("H:i:S m/d/Y", $date);
  15.  
  16. echo $show_date."<br>";
  17. echo $news."<br><br>";
  18. }
  19.  
  20.  
  21. ?>


(ten kod powyzje jest fragmentem kodu tego poniżej)


a dane sa wpisywane z mojej przerubki jakies ksiegi gosci
ktorej kod wyglada tak

  1. <?php 
  2. require ("./config/config.php");
  3. $connection = mysql_connect($db_host, $db_user, $db_password) or die ("error");
  4. mysql_select_db($db_name, $connection);
  5.  
  6. $name = $_POST["text_name"];
  7. $len = strlen($name);
  8. //tylko do wpisu do bazy danych biggrin.gif 
  9. if($len > 0 )
  10. {
  11. $news = $_POST["news"];
  12. $date = time();
  13.  
  14. $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '$news', '$data')";
  15. mysql_query($query, $connection) or die(mysql_error());
  16. }
  17. ?>
  18.  
  19. <html>
  20. <head>
  21. <title>Afick</title>
  22. </head>
  23. <body>
  24. <center>
  25.  
  26. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  27. <p><font face="Arial, Helvetica, sans-serif" size="1">
  28. Name: 
  29. <input type="text" name="text_name" />
  30. &nbsp;</font></p>
  31. <p><font face="Arial, Helvetica, sans-serif" size="1">NEWS:<br />
  32. <textarea style="width: 75%" rows="10" name="news"></textarea>
  33. </font></p>
  34. <font face="Arial, Helvetica, sans-serif" size="1">
  35. <center>
  36. <input type="submit" value="Submit">
  37. </center>
  38. </font>
  39. </form>
  40. </center>
  41. </body>
  42. </html>
  43.  
  44. <?
  45.  
  46. $query= "SELECT * FROM afick ORDER BY autoID";
  47. $result = mysql_query($query, $connection) or die (mysql_error());
  48.  
  49. for ($i = 0; $i < mysql_num_rows($result); $i++ )
  50. {
  51. $news = mysql_result($result, $i, "news");
  52. $show_news = nl2br($news);
  53. $data = mysql_result($result, $i, "data");
  54. $show_date = date("H:i:S m/d/Y", $date);
  55.  
  56. echo $show_date."<br>";
  57. echo $news."<br><br>";
  58. }
  59.  
  60. ?>




i teraz moja prośba w jaki sposob napisac pierwszy kod zeby wyswietlał dobrze date w pierwszym skrypcie wypisuje mi 1st 1970r 00:00 jakos tak a w tym drugim skrypcie jzu wyswietla poprawnie (22:37:th 04/25/2006)

ztcw to wyglada tak ze 2 kod pobiera skas dobrze dane ale mimo ze pierwszy kod jest zywcem wyciety z tego drugiego nie chce to działać sad.gif
i jak zrobic zeby sie to wyswietlało na odwrot niz obecnie (teraz najnowsza jest na dole)



wiem ze to co tu jest napisane (kod) nie jest to optymalne rozwiazanie ale dopiero sie ucze i testuje rożne drogi do celu snitch.gif

Ten post edytował afick 25.04.2006, 21:42:16
Go to the top of the page
+Quote Post
matrach
post 25.04.2006, 23:17:20
Post #8





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

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


Są pokręcone nazwy zmiennych ($date z $data)
W pełnym skrypcie:
Najpierw sie do mysql nic nie wpisuje bo $data nie jest zdefiniowana (tam zmień na $date)
Potem w wyświetlaniu sie wyświetla data zdefiniowana do zapisania ($date) jeśli ma być z mysql to jest $data.
  1. <?php
  2. $data = mysql_result($result, $i, "data");
  3. $show_date = date("H:i:S m/d/Y", $date);
  4. ?>

Widzisz chyba że te zmienne mają inną nazwe.

Więc tak:
To:
  1. <?php
  2. $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '$news', '$data')"
  3. ?>

Zmieniasz na:
  1. <?php
  2. $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '".$news."', '".$date."'')"
  3. ?>

A:
  1. <?php
  2. $show_date = date("H:i:S m/d/Y", $date);
  3. ?>

na:
  1. <?php
  2. $show_date = date("H:i:S m/d/Y", $data);
  3. ?>
Go to the top of the page
+Quote Post
afick
post 26.04.2006, 11:38:06
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.03.2006

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


OK działa wielkie dzieki biggrin.gif byl mały błąd jeszcze bo

  1. <?php
  2. $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '".$news."', '".$date."'')"
  3. ?>
wstawiłes podwujnie ' smile.gif i nie zapisywało do bazy ale teraz jest ok biggrin.gif jeszcze tylko musze sie iporac z wypiisaniem od najnowszej do najstarszej:P
Go to the top of the page
+Quote Post
matrach
post 26.04.2006, 12:06:52
Post #10





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

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


  1. <?php
  2.  
  3. for ($i = 0; $i < mysql_num_rows($result); $i++ )
  4. {
  5. $data = mysql_result($result, $i, "data");
  6. $news = mysql_result($result, $i, "news");
  7. $post[$data] = nl2br($news);
  8.  
  9.  
  10.  }
  11. krsort($post);
  12. foreach($post as $czas => $tresc)
  13. {
  14. $show_date = date("H:i:S m/d/Y", $czas);
  15. echo $show_date . '<br />' . $tresc;
  16. }
  17.  
  18. ?>

Tablica "post" (nie $_POST) przechowuje posty
w kluczu ma date posta a jako wartość treść
Go to the top of the page
+Quote Post
afick
post 26.04.2006, 12:41:15
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.03.2006

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


zastosowałem cos takiego d owypisania bazy od konca czyli od ostatnich wpisów oraz wypisuje tylko 5 ostatnich
  1. <?php
  2.  
  3. $rows = mysql_num_rows($result);
  4. $iloscnewsow = 5; //wypisuje ilośc ostatnich wpisów do bazy danych biggrin.gif
  5. $wypis = $rows - $ilośćnewsow;
  6.  
  7. /*echo ($wypis."<br>");
  8. echo ($rows."<br>");*/
  9.  
  10. for ($i = $wypis; $rows > $i; $rows-- )
  11. {
  12. $news = mysql_result($result, $rows-1, "news");
  13. $show_news = nl2br($news);
  14. $data = mysql_result($result, $rows-1, "data");
  15. $show_date = date("H:i m/d/Y", $data);
  16.  
  17. echo "<b>".$show_date."</b><br>";
  18. echo $news."<br><br>";
  19. }
  20.  
  21. ?>



nie jest to moze zbyt optymalne rozwiazanie ale najważniejsze ze działa biggrin.gif


update zna ktos gdzies jakis darmowy hsoting samej bazy danych questionmark.gif do ktorej mozna by wlesc z zewnatrz bo nie wszystki darmoewe serwisy na to pozwalaja questionmark.gif

Ten post edytował afick 28.04.2006, 14:18:09
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: 14.05.2024 - 16:48