Textdatei

  • Themenstarter Themenstarter dumm
  • Beginndatum Beginndatum
Nein, weil ich immer noch nicht weiß, wie deine Textdatei aussieht... Schreib sie doch einfach mal hierhin oder poste sie als Anhang mit! Inklusive Daten und auch dein PHP Script was du bis jetzt hast, wie du die Daten ausliest, etc.
 
Ich würde an Deiner Stelle the true´s Lösung verwenden, wenn Du "|" nicht als Trennzeichen nehmen willst, ersetze doch einfach den ersten Parameter in der explode-Funktion durch das gewünschte Trennzeichen. Allerdings würde ein Trennzeichen wie "---" wahrscheinlich spätestens dann Probleme machen, wenn in es in den einzelnen Datensätzen vorkommt. Also lieber ein selten verwendetes Zeichen wie "|" oder ";" nehmen

ODER

das Ganze mit einer MySQL-Tabelle lösen. Ist meiner Meinung nach sowieso einfacher zu handhaben....
 
Hallo,

hier ist ein Ausschnitt dieser Datei:

PHP:
----------------------------------------------------------
Name                  : user1
----------------------------------------------------------
Score                 : 630
Kills                 : 122
Deaths                : 84
Gebäude           5
----------------------------------------------------------
Name                  : root
----------------------------------------------------------
Score                 : 245
Kills                 : 33

wie man sehen kann sind es zwei unterschiedlich Absätze.
Beim ".Absatz soll er zum Beispiel nichts machen.
eim ersten alles in die db eintragen.
Beim ersten ist es ja klar. via explode und so ...... aber wie mache ich es dem Script klar, dass er es nicht beim 2. machen soll?
 
Hallo,
so sollte es funktionieren.
PHP:
<pre>
<?php
    $file = file_get_contents('test.txt');
    preg_match_all('/Name(.*?)----------------------------------------------------------(.*?)----------------------------------------------------------/si', $file, $daten);
    foreach ($daten[1] as $d){
        $d = str_replace(':', '', $d);
        $d = trim($d);
        $user[$d] = array();
    }
    $i = 0;
    foreach ($user as $key => $value){
        $temp = explode('<br />', nl2br($daten[2][$i]));
        foreach ($temp as $t){
            $t = trim($t);
            if (!empty($t)){
                $infos = explode(':', $t);
                $infos[0] = trim($infos[0]);
                $infos[1] = trim($infos[1]);
                $userinfos[$key][$infos[0]] = $infos[1];
            }
        }
        $i++;
    }
    print_r($userinfos);
    $i = 0;
    foreach ($userinfos as $key => $value){
        if ($i === 0){
            $sql = 'INSERT INTO tabelle SET
                        ';
            foreach ($value as $k => $v){
                $sql .= $k.' = "'.$v.'",
                        ';
            }
            $sql = substr(trim($sql), 0, -1);
        }
        $i++;
    }
    echo $sql;
?>
</pre>
Als Ausgabe solltes du, wenn du dieses Beispiel verwendest:
Code:
---------------------------------------------------------- 
Name                  : user1 
---------------------------------------------------------- 
Score                 : 630 
Kills                 : 122 
Deaths                : 84 
Gebäude               : 5 
---------------------------------------------------------- 
Name                  : root 
---------------------------------------------------------- 
Score                 : 245 
Kills                 : 33  
----------------------------------------------------------
folgendes erhalten:
Code:
Array
(
    [user1] => Array
        (
            [Score] => 630
            [Kills] => 122
            [Deaths] => 84
            [Gebäude] => 5
        )
    [root] => Array
        (
            [Score] => 245
            [Kills] => 33
        )
)
INSERT INTO tabelle SET
                        Score = "630",
                        Kills = "122",
                        Deaths = "84",
                        Gebäude = "5"

mfg
forsterm
 
Hi,

ist es jetzt noch mgl., dass ich beim "INSERT"-Befehl eine if-Anweisung machen kann.
Also if (name==max){mysql_query(.......) ?
 
Zurück