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
-
Jetzt zum allerletzten Mal! Was zum Teufel willst du? <td class="fieldinput"> oder <div id="fieldinput">? Herrgottnochmal, entscheide dich endlich! Hast du überhaupt Ahnung von dem, was du da von dir gibts?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
Und jetzt denkst du endlich mal nach, bevor du hier weiter diesen Blödsinn postest!. Sorry, aber langsam reicht es mir.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.
Genau aus dem Grund bin nicht nur ich hier angemeldet.Hast du überhaupt Ahnung von dem, was du da von dir gibts?
Warum sollte ich jemanden beleidigen der mir hilft ?PS: Wenn du jetzt ausfallend wirst, dann fliegst du hier ganz schnell raus. Verstanden?
Kommentar
-
Und wie ist der aktuelle Stand der Dinge? Hast du dich jetzt für etwas entschieden? Und auch ausprobiert?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:
fwrite mag aber irgendwie keine Arrays in der Form, sondern nur Strings!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:
$hit ist ein Array und besteht aus zwei Teilen. Dem kompletten Ausdruck in $hit[0] und den geklammerten Ergebnissen in $hit[1]. Und beide sind wiederum Arrays. Da du möglicherweise nur die geklammerten Ausdrücke haben möchtest, musst du auch nur das zusätzliche Array durchlaufen.PHP-Code:$Lines = count($hit[1]);
...
fwrite($datei, $hit[1][$i]);
Und bevor du fragst, wie man da Zeilenumbrüche hinein bekommt:
PeterPHP-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
-
Das hat er schon korrigiert. Ist nur noch ein Fehler drin.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
-
Kann man schon, in den meisten Fällen ist allow_url_open eingeschaltet und dann kann man damit auch Dateien (zum Lesen) öffnen, die im Web liegen. Aber warum würdest du das für die Hits brauchen? Liegen die nicht auf dem selben Server? Oder redest du schon wieder von was anderem???Zitat von benutzer_michi Beitrag anzeigenDann kann man ja nicht fopen benutzen
Wie du auf die Datei zugreifst hat doch absolut nichts damit zu tun, was drin steht. Wovon redest du?Zitat von benutzer_michi Beitrag anzeigencopy() würde zwar klappen, aber man hätte die komplette Seite und nicht die $hit-elemente.
Was denn eigentlich?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