Parsen einer Textdatei in PHP

S

Sonntagskind3

Guest
Hallo zusammen,
Ich habe da mal eine Frage als richtigen PHP Anfaenger!
Ich versuche gerade mich ans parsen von einer Textdatei und komme nicht so voran.
Was ich machen muss ist, parsen einer Textdatei und anschliessend bestimmte Variablen die in der Texdatei vorkommen in eine zuvor eingerichte Datenbank abspeichern, damit ich diese dann per SQL abfragen aus der Datenbank wiederrum abrufen kann! Ich wuedre mich als Anfaenger um jeden Rat oder sogar um ein Beispiel sehr freuen.
Vielen Dank schon mal im vorraus an die Helfer. (Nur das Parsen der Txt. wuerde mir schon helfen)

Die Textdatei ist immer gleich aufgebaut und zwar genau so, ausser die variablen natuerlich:

<CLIENT guid="1A4F0882D4124A74B718C834FCB1773B" date="2006-11-08" time="18:30:40">
<IODATA dialoglanguageid="ENG" loginguid="74DB0EB7FD274387A845709FB56C2915" sessionkey="6U63460buXK">
<TREESEGMENT type="page" action="load" guid="85E024897EAE4DEC92E004DE15E14D67" descent="unknown" parentguid="D47C9A0EF9B84E8D9E65D13376B613B3"/></IODATA>
</CLIENT>
<SERVER guid="1A4F0882D4124A74B718C834FCB1773B" date="2006-11-08" time="18:30:40">
<IODATA>
<TREESEGMENTS>
<SEGMENT parentguid="85E024897EAE4DEC92E004DE15E14D67" guid="E3C57B59CB7F4F758C5D1FE3794FF989" type="elements" image="elements.gif" expand="1"/>
</TREESEGMENTS>
<TREEELEMENT guid="85E024897EAE4DEC92E004DE15E14D67" value="Image RQL test" image="page.gif" flags="0" expand="" descent="unknown" type="page" col1value="Image RQL test" col2fontcolor="#808080" col2value=" " col1fontweight="bold" col2fontweight="normal"/>
</IODATA>
</SERVER>

usw. angefangen wieder von <CLIENT bis </SERVER>....ist eine richtig lange liste!
 
Setze dich mit fopen auseinander und danach auch mit den unten aufgeführten function`s. Damit dürfte deine frage eigetlich beantwortet sein.

gruß
 
Hey, also das oeffnen der Datei und das durchschauen der Datei habe ich jetzt schon geschafft!

das ganze sieht jetzt so aus. Ich lass mir das ganze gerade noch in einer Tabelle anzeigen ob auch alles OK ist.

<HTML>
<HEAD>
<TITLE>bisschen Parsen ueben</TITLE>
</HEAD>

<BODY bgcolor="#FFFFFF">
<TABLE width="600" border="1" cellpadding="1" cellspacing="0">
<?php

$datei = fopen("test.txt", "r") ;
while (!feof($datei)) {
$zeile = fgets($datei, 512) ;
$eintrag = explode(" ", trim($zeile)) ;
// reading is finished,
// begin to fill the table
?>

<TR>
<TD><"<?php echo $eintrag[0]; ?>">

</TD>
</TR>

<?php
} // End of while-Schleife
fclose($datei) ;?>

</TABLE>
</BODY>
</HTML>


Und nu wird das ganze so angezeigt <"ÿþ<CLIENT>> wobei ich nicht einmal weiss was das hier soll (ÿþ) sehe ich zum ersten mal! Aber ich habe zumindest einmal geschafft <CLIENT> , <"<IODATA>"> usw anzeigen zu lassen! WOW

Hmm, habe jetzt in einem Forum auch noch was ueber (DOM XML Funktionen) gelesen....
Ist allerdings eigentlich um XL Dateien zu parsen...kenne mich mit demmal gar nicht aus!!!!
waere das denn mit dem machbar..oder kennt sich da jemand aus?

 
Naja wenn die Datei im XML Format aufgebaut ist (also ein Rootnode und dann gleiche Definitionen), dann kannst Du sicherlich ne XML Klasse verwenden um einfach auf deine Attribute zugreifen zu können.

Für das, was du in Deinem letztem Post gemacht hast, würde auch die Funktion file reichen...
 
Hey nochmal....es muss ich nur noch rausfinden wie ich das ganze noch richtig in einen arrei speichern kann und in die datenbank ablegen...bzw zuerst noch die attribute
ohmy.gif
) ist als anfaenger keine leichte sache dieses PHP.
 
Wenn ich mir so etwas

QUOTE (Sonntagskind3 @ Do 16.11.2006, 19:27)<CLIENT guid="1A4F0882D4124A74B718C834FCB1773B" date="2006-11-08" time="18:30:40">
<IODATA dialoglanguageid="ENG" loginguid="74DB0EB7FD274387A845709FB56C2915" sessionkey="6U63460buXK">
<TREESEGMENT type="page" action="load" guid="85E024897EAE4DEC92E004DE15E14D67" descent="unknown" parentguid="D47C9A0EF9B84E8D9E65D13376B613B3"/></IODATA>
</CLIENT>
<SERVER guid="1A4F0882D4124A74B718C834FCB1773B" date="2006-11-08" time="18:30:40">
<IODATA>
<TREESEGMENTS>
<SEGMENT parentguid="85E024897EAE4DEC92E004DE15E14D67" guid="E3C57B59CB7F4F758C5D1FE3794FF989" type="elements" image="elements.gif" expand="1"/>
</TREESEGMENTS>
<TREEELEMENT guid="85E024897EAE4DEC92E004DE15E14D67" value="Image RQL test" image="page.gif" flags="0" expand="" descent="unknown" type="page" col1value="Image RQL test" col2fontcolor="#808080" col2value=" " col1fontweight="bold" col2fontweight="normal"/>
</IODATA>
</SERVER>


ansehe, dann sieht das für mich nach dem Xml-codierten Protokoll von Dialogsitzungen aus. Also von Dingen, deren Analyse durchaus heikel sein kann.

Da verstehe ich nicht so ganz, warum Du als Anfänger dich mit so etwas beschäftigst. Mir fallen da nur zwei unschöne Dinge ein - Du willst Daten auswerten, die dir nicht gehören oder Du hast eine Auftragsarbeit übernommen, für deren Durchführung dir jegliche Kenntnis fehlt.

Das ist jedenfalls definitiv keine Anfängerarbeit.
 
Hallo,
Ja es ist zum auswerten gedacht...aber nicht zum hacken oder derartiges was du jetzt meinst.
Ich mache gerade ein Praktikum, und dabei hat man mich das gefragt ob ich das Probieren will.
Ich dachte mir es wird nicht so schwer sein...doch nun stosse ich doch auf hartes granit und werde wahrscheinlich auch das Project abbrechen muessen. Habe aber nun, auch wenn es sehr schwer ist als anfaenger sich an die matterie zu machen, einiges nun dazu gelernt. Mal sehen versuche mich noch heute daran, und wenn ich es dann nicht hinbekommen sollte werde ich am Montag abbrechen muessen.
 
Hi,

bei XML-Daten verwende ich immer die PEAR::XML_Serializer-Klasse, damit geht das parsen von XML in ein Array sehr leicht.

CODE include 'XML/Unserializer.php';
$options=array('parseAttributes'=>true);
$unserializer = new XML_Unserializer($options);
$unserializer->unserialize('deineDatei.xml'));
$myData = $unserializer->getUnserializedData();
print_r($myData);

Nur herunterladen mußt Du es jetzt noch selbst.
smile.gif
(Achtung, es müssen noch 3 andere Klassenbibliotheken (sind aber dort verlinkt) installiert werden)

Gruß
Markus
 
Zurück
Oben