Ja, sry. Ich dachte nur es wäre schön ,wenn mir jemand wie du helfen könnte ...
preg_match Klassen auslesen
Einklappen
X
-
Sag jetzt mal ganz ehrlich. Willst du mich auf den Arm nehmen? In der angehängten datei.htm gibt es kein einziges <td class="e">. Was bitteschön soll das? Kannst du nicht mal einfachstes HTML?
PeterNukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Kommentar
-
Deswegen wollt eich ja auch ein extra topic aufmachen. Also folgende Situation ich hatte auf einen PC die orginale Datei (die als zip) und von dem Pc mit dem ich jetzt schreibe hatte ich kein Quelltext, deswegen dacht ich mir weil sich der orginale Quelltext auf dem anderen PC befindet; vereinfache ich die ganze Geschichte ein wenig, da ich dachte das man über die Klasse "fieldinput" oder "e"(wie im alten Bsp.) alle Daten in ein Array speichern kann.
Kommentar
-
Fall 1) <div class="info-value">XXX</div>
Fall 2) <td class="fieldinput">xxx<div>XXX</div></td>
So schauts auf den ersten Blick aus und nun kannst du mal selbst reguläre Ausdrücke draus basteln. Ob du die dann zu einem einzigen veroderst oder zweimal preg_match_all() aufrufst ist erstmal egal. Schritt für Schritt.
Falls du von regulären Ausdrücken keine Ahnung hast, schau im Manual nach und zeig uns dann deinen Ansatz. Wir lösen dann gern den nächsten Knoten.
Was sagst du eigentlich zu DOM? Weißt du was das ist, hast du es dir mal angeschaut? Dein Ziel ist auf beiden Wegen, Regex und DOM erreichbar. Aber ich habe den Eindruck, dass du mit Arrays und Funktionsaufrufen schon besser umgehen kannst als mit regulären Ausdrücken. Deswegen wäre der DOM-Weg für dich einfacher.
Kommentar
-
Ich weiß das jetzt regex erstmal escaped werden muss, aber den Rest kann ich nicht.
/<div id="fieldinput">(.*?) <div>(.*?) <\/div><\/div>/
Erstmal nur die fieldinput-klassen reichen aus für mich.Zuletzt geändert von benutzer_michi; 01.09.2009, 22:02.
Kommentar
-
Zitat von benutzer_michi Beitrag anzeigenIch weiß das jetzt regex erstmal escaped werden muss, aber den Rest kann ich nicht.
/<div id="fieldinput">(.*?) <div>(.*?) <\/div><\/div>/
Erstmal nur die fieldinput-klassen reichen aus für mich.
Bei deiner angehängten datei.htm gibt es nur <td class="fieldinput">. Und diese Elemente bekommst du z.B. per
PHP-Code:$save = file_get_contents('datei.htm');
preg_match_all ('/<td class="fieldinput">\s{0,1}<div>(.*?)<\/div><\/td>/', $save, $hit);
print_r($hit);
Peter
PS: Wenn du jetzt ausfallend wirst, dann fliegst du hier ganz schnell raus. Verstanden?Zuletzt geändert von Kropff; 01.09.2009, 22:23.Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Kommentar
-
Sry, kleine Verwechselung, aber gut das du den Text so genau liest.
Hast du überhaupt Ahnung von dem, was du da von dir gibts?
PS: Wenn du jetzt ausfallend wirst, dann fliegst du hier ganz schnell raus. Verstanden?
Kommentar
-
Zitat von benutzer_michi Beitrag anzeigenSry, kleine Verwechselung, aber gut das du den Text so genau liest.
PeterNukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Kommentar
-
danke klappt alles.
Wenn ich nun die $hit-elemente einzeln ansprechen will und Sie in eine externe Datei speichern will, um diese Elemente in eine html-Tabelle einzubetten; habe ich mir folgendes überlegt:
PHP-Code:$datei=fopen($dateiname,'a+');
$Lines = count($hit);
fwrite($datei, "<table><tr>");
for($i=0;$i<$Lines;$i++){
fwrite($datei, "<td>");
fwrite($datei, $hit[$i]);
fwrite($datei, </td>
}
fwrite($datei, </tr></table>");
fclose($datei);
Gibts da vorgefertigte Funktionen, mit denen ich das umsetzen kann ?Wichtig ist auch das die Daten immer an das Ende gefügt werden...Zuletzt geändert von benutzer_michi; 03.09.2009, 21:28.
Kommentar
-
Wenn, dann höchstens so:
PHP-Code:$Lines = count($hit[1]);
...
fwrite($datei, $hit[1][$i]);
Und bevor du fragst, wie man da Zeilenumbrüche hinein bekommt:
PHP-Code:fwrite($datei, $hit[1][$i]."\n");
Zuletzt geändert von Kropff; 03.09.2009, 21:29.Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Kommentar
-
Mit dem Beispielcode erzeugst du aber eine leere Tabelle im Browser und schreibst nur die Hits in die Datei. Geh ich recht in der Annahme, dass du eigentlich die HTML-Tabelle mit den Hits in der Datei haben willst? Dann müsstest du den HTML-Code auch mit fwrite schreiben, statt mit print.
Den Rest hat dir Kropff ja schon mitgeteilt, hab ich grad noch gesehen.[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Zitat von AmicaNoctis Beitrag anzeigenMit dem Beispielcode erzeugst du aber eine leere Tabelle im Browser und schreibst nur die Hits in die Datei. Geh ich recht in der Annahme, dass du eigentlich die HTML-Tabelle mit den Hits in der Datei haben willst? Dann müsstest du den HTML-Code auch mit fwrite schreiben, statt mit print.
PeterNukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Kommentar
-
Na eben.
OffTopic:
Kann man eigene Beiträge auch wieder löschen, wenn sie gar keinen Sinn mehr machen?[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Danke für die schnellen und hilfreichen Antworten.
Angenommen was wäre wenn die Datei nicht auf einer Festplatte liegen würde, sondern irgendwie mit http:// anfangen würde.
Dann kann man ja nicht fopen benutzen und copy() würde zwar klappen, aber man hätte die komplette Seite und nicht die $hit-elemente.
Wie könnte man sowas bewerkstelligen ?
Kommentar
-
Zitat von benutzer_michi Beitrag anzeigenDann kann man ja nicht fopen benutzen
Zitat von benutzer_michi Beitrag anzeigencopy() würde zwar klappen, aber man hätte die komplette Seite und nicht die $hit-elemente.
Zitat von benutzer_michi Beitrag anzeigenWie könnte man sowas bewerkstelligen?[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
Kommentar