Witam,
Ostatnio zastanawiałem się czy da się zrobić coś na kształt bazy danych, co będzie przechowywać np. jakieś pseudo tematy z jakąś treścią.
I napisałem funkcje:
function get_threads(){
$di = '../info/site/threads/';
$el = 0;
foreach(new DirectoryIterator($di) as $file){
if(!$file->isDot()){
$element = $file->getFilename();
$vieved = explode('[TOPIC:VIEVED]',$answers[0
]); $topic = explode('[TOPIC:NAME]',$vieved[1
]); $started = explode('[TOPIC:STARTED]',$topic[1
]); $message = explode('[TOPIC:POST]',$started[1
]); $element2 = $element2[0];
$link = '<a href="home.php?view=Ask&Thread='.$element2.'#1" title="Go to first post">'.$topic[0].'</a>';
$start = '<br><span class="started">Started by: '.$started[0].'</span>';
$view = $vieved[0];
$any_answer = explode('[ANSWER:MESSAGE]',$answers[1
]); if(!empty($any_answer[0
])){ for($t=0; $t<sizeof($any_answer);++$t){
$last_author = explode('[ANSWER:AUTHOR]',$any_answer[$t]); $last_time = explode('[ANSWER:POST]',$last_author[1
]); $timeex = $last_time[0];
if($t = sizeof($any_answer[$t])){ $max = $timeex;
}
}
$link2 = '<a href="home.php?view=Ask&Thread='.$element2.'#'.$count.'" title="Go to last post">'.(date("d.m.Y, H:i",$max)).'<br>'.$last_author[0].'</a>'; if($max > $message[1]){
$elem[$el] = $max;
}
else{
$elem[$el] = $message[1];
}
}
else{
$count = 1;
$link2 = '--';
$elem[$el] = $message[1];
}
$content_m[$elem[$el]] = '<tr><td width="200px" align="left"><p>'.$link.$start.'</p></td><td width="50px" align="center">'.date("d.m.Y, H:i",$message[1]).'</td> <td width="10px" align="center">'.$vieved[0].'</td><td width="10px" align="center">'.($count-1).'</td><td width="50px" align="center">'.$link2.'</td></tr>';
$el++;
}
}
foreach($elem AS $numb => $timestamp){
$content_msgs .= $content_m[$timestamp];
}
return $content_msgs;
}
I przykładowy plik z folderu:
55[TOPIC:VIEVED]Jak to zrobić 2[TOPIC:NAME]MadMark[TOPIC:STARTED]Nie mam pojęcia jak to zrobić, może będzie działać...[TOPIC:POST]1299890170[TOPIC:ANSWERS]
test[ANSWER:AUTHOR]1299890170[ANSWER:POST]MSG[ANSWER:MESSAGE]
I teraz 2 problemy:
- kiedy dopisze się kolejną odpowiedź aby plik wyglądał:
55[TOPIC:VIEVED]Jak to zrobić 2[TOPIC:NAME]MadMark[TOPIC:STARTED]Nie mam pojęcia jak to zrobić, może będzie działać...[TOPIC:POST]1299890170[TOPIC:ANSWERS]
test[ANSWER:AUTHOR]1299890170[ANSWER:POST]MSG[ANSWER:MESSAGE]
test2[ANSWER:AUTHOR]1299892589[ANSWER:POST]MSG2[ANSWER:MESSAGE]
przestaje działać, błąd jest gdzieś w pętelce
for ale nie wiem gdzie i z jakiego powody
- kiedy mam np. 3 pliki .txt w tym katalogu i dopiszę odpowiedź w dwóch z nich, na liście wyświetlanej przez tę funkcję pojawia się dwa razy temat o wyższym ID z odpowiedzią i trzeci plik bez odpowiedzi.
Jest ktoś w stanie mi w tym pomóc, czy lepiej dac sobie spokój i użyć SQL?
Z góry dziękuję za odpowiedź