Seite 1 von 3

HTML Seiten auslesen und in Datenbank schreiben

Verfasst: 13.10.2005 09:59
von mgutt
Ich habe von damals noch eine ziemlich alte Seite.

Da habe ich ein Lexikon mit mehreren hundert Seiten und Begriffen... früher soll heißen COPY & PASTE.. Schande über mich ;)

Naja und jetzt die Frage, ob man gewisse Inhalte per php z.B. auslesen kann. Also Datei öffnen und dann z.b. ab TD-Tag 2 den Inhalt in Zelle xyz im mysql übertragen.

Wer kennt da vielleicht einen Codeschnipsel? Ich würde mir dann versuchen den zurecht zu meißeln.

Verfasst: 13.10.2005 10:51
von fanrpg
versuchs mal mit fopen, fget und Co.
Lässt alles auslesen bis auf irgendwelche HTML Tags (<td>,...)
bzw. irgnorieren das müsste so klappen

Verfasst: 13.10.2005 10:57
von mgutt
das mit fopen war mir klar. ich hätte gerne ein kleines fgets-Beispiel. wie man z.b. die TD's ignoriert und dann nur den Inhalt übrig hat.

Verfasst: 13.10.2005 11:00
von fanrpg

Code: Alles auswählen

$datei = fopen();
$inhalt = fgets($datei);
$inhalt = str_replace("<td>", "", $inhalt);
...
So zum Beispiel, kann man das machen denke ich

Verfasst: 13.10.2005 11:01
von mgutt
aso str_replace hm.. jeden einzelnen tag.. dann suche ich mal nach einer str_auflistung.. irgendwer hat doch sicher mal so nen code geschrieben.

EDIT:

Ich glaube ich habe was gefunden:

Code: Alles auswählen

$datei = fopen("datei.htm","r");
   while($line=fgets($datei,1024)) {
 $text = $line;
 $aendern = preg_replace("/\<(.*?)\>/si", "", $text);
 echo "$aendern";
  }

Das sieht schon gut aus ;)


EDIT2:

Wie könnte man denn jetzt z.B. die Überschrift und den Text einzeln rausholen?

Verfasst: 02.04.2006 03:28
von mgutt
Beim Einlesen der Seite habe ich noch das Problem, dass ich vor dem Text viele "/n" Zeilensprünge habe.

Grundsätzlich könnte ich die mit "trim" entfernen, aber leider sind dann die wichtigen im Text selbst auch weg.

Wie kann ich alle "/n" vor dem ersten Wort entfernen, ohne die restlichen auch zu löschen?

Verfasst: 02.04.2006 04:47
von Dennis63
Genau dafür ist trim() da. Es entfernt nur am Anfang und am Ende des Strings Whitespaces und andere Zeichen. Du kannst trim() aber auch mit den zu entfernenden Zeichen füttern.

Grüße
Dennis

Verfasst: 02.04.2006 14:35
von mgutt
das geht aber nicht. wenn ich trim anwende verschwinde auch alle anderen "/n". d.h. die überschrift und der text gehen plötzlich ineinander über.

EDIT:

Das Problem ist ja, das ich bei der Ausgabe jeder einzelnen Zeile die Werte ersetze. Soll heißen eine Zeile ist ja automatisch mit Anfang und Ende ausgestattet.

Verfasst: 02.04.2006 15:24
von fanrpg
http://de3.php.net/manual/de/function.ltrim.php
Entfernt die Zeichen nur am Anfang.

Verfasst: 02.04.2006 15:39
von mgutt
ltrim und rtrim funktionieren hier beide nicht.

ich habe es dann mit file versucht direkt in ein array zu schreiben.

jetzt habe ich folgende konstellation:
Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
[10] =>
[11] =>
[12] =>
[13] =>
[14] =>
[15] =>
[16] =>
[17] =>
[18] =>
[19] =>
[20] =>
[21] =>
[22] =>
[23] =>
[24] =>
[25] =>
[26] =>
[27] =>
[28] =>
[29] =>
[30] =>
[31] =>
[32] =>
[33] =>
[34] =>
[35] =>
[36] =>
[37] =>
[38] =>
[39] =>
[40] => Titel der Seite
...
[52] - [56] => Text
...
[57] - [70] => wieder leer
dummerweise bekomme ich keine if-abfrage hin, die die leeren elemente entfernt / löscht.

!= "" geht nicht und !empty auch nicht. auch != "/n" will nicht.

wie kann ich herausfinden, was genau im array noch vorhanden ist?