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
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 ).
http://pl.php.net/manual/pl/ref.filesystem.php
<?php function plik () { $plik = http://www.php.net/fopen("./plik.txt","r"); $czytaj = http://www.php.net/fread($plik,10000); http://www.php.net/echo $czytaj; http://www.php.net/fclose($plik); } http://www.php.net/echo plik(); ?>
no. to jest po prostu wyswietlany czysty pliczek z newsami.
bardzo kiepski sposob na trzymanie newsow (wlasnie stad masz problem).
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ć.
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)
<? /* czytaj zwraca tablicę kilku ostatnich wpisów w pliku $plik. Liczbe wpisow do zwr
ocenia okresla zmienna $liczba. */ function czytaj($plik,$liczba=5) { $zaw = http://www.php.net/file($plik); foreach($zaw as $zk => $zv) { if ($zv === "") http://www.php.net/unset($zaw[$zk]); } if (http://www.php.net/count($zaw) > $liczba) { $zaw = http://www.php.net/array_slice($zaw,http://www.php.net/count($zaw)-$liczba); } return $zaw; } /* wypisz wypisuje dane z tablicy (np. otrzymanej za pomoca czytaj), umieszczajac na koncu kazdego wpisu ciag znakow $delimit. */ function wypisz($arr,$delimit="<br />") { if (http://www.php.net/is_string($arr)) http://www.php.net/print($arr); elseif (http://www.php.net/is_array($arr)) { foreach ($arr as $k => $v) http://www.php.net/print($v.$delimit); } } /* 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. */ function dodajwpis($plik,$wpis,$obrobka="nl2br") { $pzaw = http://www.php.net/file($plik); if (http://www.php.net/is_string($wpis)) { $pzaw[] = $obrobka($wpis); } else if (http://www.php.net/is_array($wpis)) { foreach ($wpis as $wk => $wv) $pzaw[] = $obrobka($wv); } $p1 = http://www.php.net/fopen($plik,"w") or http://www.php.net/die("<span style=\"color: #FF0000;\"><br />Błąd otwierania pliku {$plik}, sprawdź prawa dostępu.</span><br />"); foreach ($czaw as $ck => $pv) { $pv = http://www.php.net/str_replace("\n","",$pv); http://www.php.net/fputs($p1,$pv."\n"); } http://www.php.net/fclose($p1); } /* 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. */ function usunwpis($plik,$nrwpisu) { $czaw = http://www.php.net/file($plik); if (http://www.php.net/is_int($nrwpisu)) http://www.php.net/unset($czaw[$nrwpisu]); else if (http://www.php.net/is_array($nrwpisu)) { foreach ($nrwpisu as $nk => $nv) http://www.php.net/unset($czaw[$nv]); } $p1 = http://www.php.net/fopen($plik,"w") or http://www.php.net/die("<span style=\"color: #FF0000;\"><br />Błąd otwierania pliku {$plik}, sprawdź prawa dostępu.</span><br />"); foreach ($czaw as $ck => $cv) { $cv = http://www.php.net/str_replace("\n","",$cv); http://www.php.net/fputs($p1,$cv."\n"); } http://www.php.net/fclose($p1); } ?>
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)
<? require ("./config/config.php"); $connection = http://www.php.net/mysql_connect($db_host, $db_user, $db_password) or http://www.php.net/die ("error"); http://www.php.net/mysql_select_db($db_name, $connection); $query= "SELECT * FROM afick ORDER BY autoID"; $result = http://www.php.net/mysql_query($query, $connection) or http://www.php.net/die (http://www.php.net/mysql_error()); for ($i = 0; $i < http://www.php.net/mysql_num_rows($result); $i++ ) { $news = http://www.php.net/mysql_result($result, $i, "news"); $show_news = http://www.php.net/nl2br($news); $data = http://www.php.net/mysql_result($result, $i, "data"); $show_date = http://www.php.net/date("H:i:S m/d/Y", $date); http://www.php.net/echo $show_date."<br>"; http://www.php.net/echo $news."<br><br>"; } ?>
<?php require ("./config/config.php"); $connection = http://www.php.net/mysql_connect($db_host, $db_user, $db_password) or http://www.php.net/die ("error"); http://www.php.net/mysql_select_db($db_name, $connection); $name = $_POST["text_name"]; $len = http://www.php.net/strlen($name); //tylko do wpisu do bazy danych if($len > 0 ) { $news = $_POST["news"]; $date = http://www.php.net/time(); $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '$news', '$data')"; http://www.php.net/mysql_query($query, $connection) or http://www.php.net/die(http://www.php.net/mysql_error()); } ?> <html> <head> <title>Afick</title> </head> <body> <center> <form action="<?php http://www.php.net/echo $_SERVER['PHP_SELF']; ?>" method="post"> <p><font face="Arial, Helvetica, sans-serif" size="1"> Name: <input type="text" name="text_name" /> </font></p> <p><font face="Arial, Helvetica, sans-serif" size="1">NEWS:<br /> <textarea style="width: 75%" rows="10" name="news"></textarea> </font></p> <font face="Arial, Helvetica, sans-serif" size="1"> <center> <input type="submit" value="Submit"> </center> </font> </form> </center> </body> </html> <? $query= "SELECT * FROM afick ORDER BY autoID"; $result = http://www.php.net/mysql_query($query, $connection) or http://www.php.net/die (http://www.php.net/mysql_error()); for ($i = 0; $i < http://www.php.net/mysql_num_rows($result); $i++ ) { $news = http://www.php.net/mysql_result($result, $i, "news"); $show_news = http://www.php.net/nl2br($news); $data = http://www.php.net/mysql_result($result, $i, "data"); $show_date = http://www.php.net/date("H:i:S m/d/Y", $date); http://www.php.net/echo $show_date."<br>"; http://www.php.net/echo $news."<br><br>"; } ?>
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.
<?php $data = http://www.php.net/mysql_result($result, $i, "data"); $show_date = http://www.php.net/date("H:i:S m/d/Y", $date); ?>
<?php $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '$news', '$data')" ?>
<?php $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '".$news."', '".$date."'')" ?>
<?php $show_date = http://www.php.net/date("H:i:S m/d/Y", $date); ?>
<?php $show_date = http://www.php.net/date("H:i:S m/d/Y", $data); ?>
OK działa wielkie dzieki byl mały błąd jeszcze bo
wstawiłes podwujnie ' i nie zapisywało do bazy ale teraz jest ok jeszcze tylko musze sie iporac z wypiisaniem od najnowszej do najstarszej:P
<?php $query = "INSERT INTO afick (autoID, news, data) VALUES(NULL, '".$news."', '".$date."'')" ?>
<?php for ($i = 0; $i < http://www.php.net/mysql_num_rows($result); $i++ ) { $data = http://www.php.net/mysql_result($result, $i, "data"); $news = http://www.php.net/mysql_result($result, $i, "news"); $post[$data] = http://www.php.net/nl2br($news); } http://www.php.net/krsort($post); foreach($post as $czas => $tresc) { $show_date = http://www.php.net/date("H:i:S m/d/Y", $czas); http://www.php.net/echo $show_date . '<br />' . $tresc; } ?>
zastosowałem cos takiego d owypisania bazy od konca czyli od ostatnich wpisów oraz wypisuje tylko 5 ostatnich
<?php $rows = http://www.php.net/mysql_num_rows($result); $iloscnewsow = 5; //wypisuje ilośc ostatnich wpisów do bazy danych $wypis = $rows - $ilośćnewsow; /*echo ($wypis."<br>"); echo ($rows."<br>");*/ for ($i = $wypis; $rows > $i; $rows-- ) { $news = http://www.php.net/mysql_result($result, $rows-1, "news"); $show_news = http://www.php.net/nl2br($news); $data = http://www.php.net/mysql_result($result, $rows-1, "data"); $show_date = http://www.php.net/date("H:i m/d/Y", $data); http://www.php.net/echo "<b>".$show_date."</b><br>"; http://www.php.net/echo $news."<br><br>"; } ?>
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)