![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 7.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witajcie. Mam pewne zapytanie odnosnie tematu. Napisalem juz skrypt ktory dodaje kolejne newsy tj. zapisuje kazdy kolejny o takiej nazwie news$i.txt , gdzie $i>=1 czyli zapisuje kolejno news1.txt , news2.txt itd itd. Chcialbym teraz zapytac jak napisac skrypt ktory odczytywal by te kolejne pliki. Prosze o pomoc.
Formuluje ostateczne pytanie! Jak zrobic aby odczytywal kolejno pod soba news1.txt dalej news2.txt i aby wyswietlaly sie tylko jesli istnieja czyli np jezeli istnieje news1.txt news2.txt , a kolejnych nie ma to zeby wyswietlal tylko te istniejace a jezeli by sie pojawilo news3.txt to zeby go wyswietlil. Prosze o pomoc , z góry dzieki! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
[php:1:2287709d36]<?php
if ($dir = @opendir($path)) { while (($file = readdir($dir)) !== false){ if (($file != ".") AND ($file != "..")){ $news[] = $file; } } closedir($dir); } natcasesort($news); foreach($news AS $key => $val){ // wyswietlanie wpisow } ?>[/php:1:2287709d36] -------------------- audaces fortuna iuvat!
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 19.08.2003 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
[php:1:83af21fe1a]<?php
$intLiczbaNewsow = 3; for( $i = 0; $i <= $intLiczbaNewsow; $i++ ) { if( file_exists( 'news'. $i .'.txt' ) ) { $fp = fopen( 'news'. $i .'.txt', 'a+' ); $content = fread( $fp, filesize( 'news'. $i .'.txt' ) ); print( $content ); fclose( $fp ); } } ?>[/php:1:83af21fe1a] Pisane z palca, ale powinno działać ![]() -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 28.04.2004 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Ja swój system o plikach oparłem o następujące założenia:
:arrow: Każda news zapisany jest w pliku *.txt w postaci zserializowanej tablicy z danymi o nazwie kolejnej liczby np. '2.txt' :arrow: Lista wszystkich news'ów zapisana jest pliku index.txt w postaci "id{|}timetamprn" np. "2{|}1231727712rn" :arrow: Podczas dodawania news'a na początku pliku index.txt dodawana jest linia j.w. oraz tworzony plik z news'em :arrow: Przy odczycie jest sprawdzana liczba wszystkich linijek w pliku index.txt. Jeśli jest ona mniejsza niż liczba zdefiniowanej liczby wyświetlanych news'ów - wyśietlane są wszystkie dostępne. A tu trochę kodu: [php:1:e5dbd28888]<?php function addnews($title, $body){ $how = rf('./data/how.txt'); $how++; sf($how, './data/how.txt'); $indexLine = $how.'{|}'.time()."n"; a2f($indexLine, './data/index.txt'); $title = str_replace("n", '<br />', $title); $body = str_replace("n", '<br />', $body); $vars = array('tytul' => $title, 'tresc' => $body, 'time' => time()); $newsLine = serialize($vars); sf($newsLine, './data/'.$how.'.txt'); } function viewnews($id){ if(file_exists('./data/'.$id.'.txt')){ $news = rf('./data/'.$id.'.txt'); $news = unserialize($news); $news['id'] = $id; return $news; } else return FALSE; } function viewlast($how){ $list = file('./data/index.txt'); if($how > count($list)) $how = count($list); for($i = 0; $i < $how; $i++){ $info = explode('{|}',$list[$i]); $id = $info[0]; $news = viewnews($id); if($news != FALSE){ $last[$i]['tytul'] = $news['tytul']; $last[$i]['tresc'] = $news['tresc']; $last[$i]['time'] = $news['time']; $last[$i]['id'] = $news['id']; } } return $last; } function delnews($id){ if(file_exists('./data/'.$id.'.txt')==TRUE){ $output=''; $list = file('./data/index.txt'); for($i = 0; $i < count($list); $i++){ $exp = explode('{|}', $list[$i]); if($exp[0] != $id){ $output .= $list[$i]; } } sf(chop($output), './data/index.txt'); @unlink('./data/'.$id.'.txt'); return TRUE; } else return FALSE; } function editnews($id, $title, $body){ if(file_exists('./data/'.$id.'.txt')){ $output=''; $list = file('./data/index.txt'); for($i = 0; $i < count($list); $i++){ $exp = explode('{|}', $list[$i]); if($exp[0] != $id){ $output .= $list[$i]; } else $output .= $id.'{|}'.time()."n"; } sf(chop($output), './data/index.txt'); $body = str_replace("n", '<br />', $body); $title = str_replace("n", '<br />', $title); $news = array('tytul' => $title, 'tresc' => $body, 'time' => time()); sf(serialize($news), './data/'.$id.'.txt'); } } ?>[/php:1:e5dbd28888] no i funkcje użyte w powyższym kodzie: [php:1:e5dbd28888]<?php function rf($where) { $file=$where; $handle=fopen($where, 'r'); flock($handle, 1); $readed=fread($handle, filesize($file)); flock($handle, 3); fclose($handle); return $readed; } function sf($what, $where) { $file=$where; $handle=fopen($where, 'w'); flock($handle, 2); fwrite($handle, $what); flock($handle, 3); fclose($handle); } function a2f($what, $where) { $file=$where; $handle=fopen($where, 'r'); flock($handle, 1); $old=fread($handle, filesize($file)); flock($handle, 3); fclose($handle); $file=$where; $handle=fopen($where, 'w'); flock($handle, 2); fwrite($handle, chop($what.chop($old))); flock($handle, 3); fclose($handle); } ?>[/php:1:e5dbd28888] -------------------- Env: Aurox Linux 9.2 ][ Apache 2.0.49 ][ PHP5-RC3 ][ SQLite ][ Quanta+ 3.1.4
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 7.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
phantom: Jesli moglbys to wyslij mi spakowany caly ten system juz gotowy bo domyslam sie ze masz. Bede bardzo wdzieczny. Poza tym wydaje mi sie sensowny. Moj mail: wegrzyniak@go2.pl
Partyzant: Twoj kod jest OK. Jednak mam pewien problem. Jesli mialem zapisywanie do tych plikow jako news1.txt to w nim mialem zapisana postac taka: <table><tr><td></td>kto dodal<td>Temat</td><td>Tresc</td></tr></table> to zeby odczytywal wraz z tymi tabelkami zeby tworzyly sie jakgdyby gotowe postacie newsow w tabelce. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 19.08.2003 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
[php:1:3c214764a0]
<?php $intLiczbaNewsow = 3; for( $i = 0; $i <= $intLiczbaNewsow; $i++ ) { if( file_exists( 'news'. $i .'.txt' ) ) { $fp = fopen( 'news'. $i .'.txt', 'a+' ); $content = fread( $fp, filesize( 'news'. $i .'.txt' ) ); $content = explode( '||', $content ); var_dum( $content .'<br>' ); } } ?> [/php:1:3c214764a0] Jeżeli będziesz w pliku np. news1.txt dane w taki sposób: Cytat jakieś dane||inne dane||jeszcze inne||inne
to ten kod Ci się przyda w 100%. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 08:41 |