Txt-->mysql

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Txt-->mysql

    Hallo liebe PHP Profis,

    als Nostalgiker und Betreiber einer Fanseite möchte ich gerne ein uraltes Forum, das leider nur noch als Textdatei existiert wieder zum Leben erwecken und als read only Forum wieder ins Netz stellen.

    Von der Theorie her ist es ja gar nicht so extrem schwer, ich packe alle Posts in eine MYSQL Taabelle und lese sie später mittels PHP aus. Das traue ich mir ja noch als Anfänger zu, aber den Text in die Datenbank zu bekommen, ist mir eindeutig eine Nummer zu hoch.

    Die Posts in der Textdatei sehen alle so aus:
    [COLOR=green]
    Post-ID : 152151
    Parent-ID : 152143
    Written by: Poster
    Date/Time : 2002-04-04 20:28
    Subject : Frage zu Bla bla bla
    --------------------------------------------
    Textfeld

    ---
    Signaturfeld
    --------------------------------------------[/COLOR]

    Die --------- Trennlinien sind alle exakt gleich lang, was das Trennen etwas erleichtert. Demnach müsste ich lediglich eine Tabelle in der MYSQL Datenbank erstellen, die die Spalten Post-ID, Parent-ID, Written by, Date/Time, Subject, Text und Sig enthält und später dann auslesen. Von der Theorie her denke ich dass es machbar ist.

    Das Ganze jedoch in PHP zu fassen ist mir zu kompliziert. Vielleicht hat ja der eine oder andere von euch Lust mir zu helfen. Ich bin selbst für Hinweise dankbar.

  • #2
    Fang mal an, Schritt für Schritt. Zuerst die Datei mit fopen() öffnen und mit fgets() zeilenweise auslesen.

    Dann eben mit Stringfunktionen auseinandernehmen. Ich würde für die Werte jeweils arrays vorhalten, in die die Werte kommen, und am Schluss mit foreach den Kram testweise ausgeben, bis du alle Werte einzeln zu fassen hast. Daraus kannst du dann die Queries basteln.

    Wenn du irgendwo nicht weiterkommst, sag nochmal bescheid.
    ich glaube

    Kommentar


    • #3
      Da die Beschreibungen immer gleich sind sollten explode (":") und substr auf jeden Fall helfen.
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        Was wäre eigentlich, wenn ich mit diesem Codeschnipsel beginnen würde? ( unten ) Den hat Jemand für mich geschrieben. Das Problem ist nur, dass dieser Code ursprünglich die Posts in Html Dokumenten abspeichern sollte. Das will ich nicht, aber er hat das Dokument mit diesem Code ausgelesen ( wenn ich richtig liege ). Also dachte ich, ich mache da weiter, wo er mit dem Html Export begann. Leider blicke ich bei dem Code nicht durch, deshalb meine Frage: Kann ich da weitermachen und in die DB exportieren? Was meint ihr?

        PS: Echt, für einen Anfänger wie mich ist das schon echt krass, was ich mir da vorgenommen habe. Ich kann die Schritte bei dem Code nicht nachvollziehen. Ich fühle mich total verloren...
        PHP-Code:
        $filename "01.txt";
            
        $handle fopen($filename"rb");
            
        $posts = array();
            
        $fulltext fread($handlefilesize ($filename));

            echo 
        "File read.<br>";
            
        flush();

            
        $poststemp explode("Post-ID   : "$fulltext);
            foreach(
        $poststemp as $post)
            {
                
        $i 0;
                
        $text explode("--------------------------------------------\r\n"$post);
                
        $post explode("\r\n"$text[0]);
                
        $postid intval($post[$i++]);
                if(
        $postid)
                {
                    
        $parent intval(trim(substr($post[$i++], 12)));
                    
        $posts[$postid]['post'] = $postid;
                    
        $posts[$postid]['parent'] = $parent;
                    if(!
        $parent)
                        
        $tree[] = $postid;
                    
        $posts[$postid]['first'] = "";
                    
        $posts[$postid]['depth'] = "";
                    
        $posts[$postid]['refs'] = 0;
                    
        $posts[$postid]['poster'] = trim(substr($post[$i++], 12));
                    
        $posts[$postid]['time'] = trim(substr($post[$i++], 12));
                    
        $posts[$postid]['subject'] = trim(substr($post[$i++], 12));
                    
        $posts[$postid]['text'] = trim($text[1]);
                }
            }

            echo 
        "File parsed.<br>";
            
        flush(); 

        Kommentar


        • #5
          OffTopic:
          Wenn es doch ein "Read-Only"-Forum werden soll, warum brauchst du dann überhaupt eine SQL-Datenbank? Ich verspreche mir ehrlich gesagt keine Dynamik von so eine Projekt.

          Kommentar


          • #6
            Davon abgesehen - wenn es denn so sein soll, dann würde ich dir raten, es selber zu machen, anstatt auf dem Code aufzubauen. Soviel Arbeit ist es wirklich nicht.

            Falls du keine Lust dazu hast, dich selbst reinzuarbeiten - dann musst du eben versuchen zu verstehen, was der Code unten macht und was du ändern willst - wird aber sicherlich auf den selben oder eher mehr Aufwand hinauslaufen als Anfänger wie du dich nennst.

            Für beide Varianten gilt: mit konkreten Fragen kannst du jederzeit wieder hier aufschlagen.

            Falls beides nicht so toll ist, solltest du überlegen, jemanden dafür zu bezahlen - so wie du das schilderst, sollte es maximal eine Stunde dauern.
            ich glaube

            Kommentar

            Lädt...
            X