PHP Daten verwalten

Hi!

Ich wollte mich mal Versuchen, ein Forum zu coden....
So ganz simples Prinzip:
Mann schreibt seinen Namen, das Thema und den Inhalt,
und dass wird alles in eine .TXT Datei gespeichert.
Das klappt auch, wenn ich nur ein Thema mit einer Textdatei habe!

Nun will ich, dass man natürlich mehrere Themen aufmachen kann, oder halt Antworten.
Beim Antworten ist nun mein Problem:
Ich muss ja die Antwort in die TXT Datei speicher, dazu muss ich aber wissen wie sie heißt!

Wenn ich ein neues Thema erstelle kann ich natürlich das so machen:
$Dateiname=time();
und dann zum erstellen schreib ich
touch("$Dateiname.php"); und
touch("$Dateiname.txt");
aber wenn ich nun auf diesen Thread antworten möchte, muss ich wissen wie nun die erstellete TXT Datei heißt!

Woher weiß ich das?
 
du musst die halt system erstellen. .. z.b. Thema-antwort-zeit

und dann kannste ja.. nach dateien suchen die mit 05 beginnen.. und dann der reihe nach 05-01
05-02
05-03
 
?????

Das mit $Dateiname=time(); is keine Schlechte Idee, würd dann noch eine Datei erstellen in der Festgelegt ist welcher Thread welche nummer hat ( time ). Und in dieser Datei in jeder Zeile erst ein ander Thread. Die Datei kannst du dann mit fputs und fgets editiren und auslesen.


PHP:
$open1 = fopen("datei.x", "r+");

// Zeilen Auslesen
$z1 = fgets($open1); 
$z2 = fgets($open1);
$z3 = fgets($open1);

// Zeilen Schreiben
fputs($open1, "Hier ist Zeile 1 ");
fputs($open1, "Hier ist Zeile 2 ");
fputs($open1, "Hier ist Zeile 3 ");

fclose ($open1);
 
wenn ich eine neue PHP + TXT Datei erstelle, soll das ja automatisch gehen.
Da muss ich ja eine Datei erstellen, die diesen Code enthält:
<?PHP
include("DATEI.TXT");
?>
gibts einen Befehl wie SAVE AS oder so?
ich muss ja eine PHP Datei erstellen, die diesen Befehl hat........

geht sowas?
 
'Save As' - wozu. du kannst doch mit fopen, fput, und fget dateien erstellen, beschreiben, auslese, alles... desweiteren hat php nocvh ne ganze menge anderer Befehle, die das Filehandling erleichtern.
 
Original von -Tux-
<?PHP
include("DATEI.TXT");
?>

Wie soll das bitte gehen??? Der Server Interprätiert die Datei.txt nicht als PHP und kann sie somit auch nicht mit include einlesen!
Solange der PHP Code in der datei.txt innerhalb der Datei ordnungsgemäß (mit <?php #code ?>) als PHP Code gekennzeichnet ist, funktioniert das ohne weiteres!
PHP ist die includete Dateiart völlig egal. Du kannst das Ding auch datei.habo nennen und der PHP Code darin wird trotzdem in dem PHP Skript, wo diese Datei includet wurde, ordnungsgemäß ausgeführt!
 
Mal ein ganz anderer ansatz, wahrscheinlich nicht das, was du willst, aber ich poste es jetzt trotzdem: Wieso erstellst du nicht einfach eine XML-Datei, in der du die ganzen daten speicherst? PHP hat ja einige nette XML-Funktionen eingebaut.
Falls du trotzdem eine TXT-Datei willst, würde ich es folgendermassen machen (weiss aber nicht obs auch funktioniert, habs nicht getestet):
PHP:
$files = "array(\"thread1.txt\", \"Titel1\"), array(\"thread2.txt\", \"Titel2\")";
$num_threads = 2;
$threads = array($files);
In der ersten Zeile wird einfach eine Variable deklariert, die die Namen der verschiedenen Threads enthält und den dazugehörigen Titel.
Das wird dann in eine PHP-Datei eingelesen:
PHP:
$infos = "pfad_der_obigen_datei";
include($infos);
echo "<table>"
for ($i=0; $i<$num_threads; $i++) {
        echo "<tr><td>Titel:</td><td>".$threads[$i][1]."</td></tr>";
        $thread_file = fopen($threads[$i][0], r);
        echo "<tr><td>Beitrag:</td><td>".$thread_file."</td></tr>";
        fclose($thread_file);
Kappiert was ich meine?
Wenn ein neuer Thread erstellt wird, muss die Datei mit den Infos auch geändert werden, und natürlich eine neue TXT Datei angelegt werden:
PHP:
$infos = "pfad_zur_datei";
$include($infos);
$info_string = fread($info_file, $size);
$new_file = "\$files = ".$files."array(\"Pfad_zum_neuen_eintrag\", \"Name_des_neuen_eintrags\");";
$num_threads++;
$new_file .= "\$num_threads = ".$num_threads.";";
$new_file .= "\$threads = array(\$files);";
$info_file = fopen($infos, w);
fwrite($info_file, $new_file);
fclose($info_file);
Habt ihr in etwa verstanden was ich meine? Jetzt müsste man nur noch die feinarbeit machen. Ich glaube, es ist eine ähnliche Lösung, wie -Tux- sie vorgeschlagen hat, nur etwas anders realisiert?
 
Zurück
Oben