WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   [php] HTML files auslesen (http://www.wcm.at/forum/showthread.php?t=147965)

reichr 19.10.2004 12:45

[php] HTML files auslesen
 
hy leute!

xxx html files in einem ordner

brauche ein script das mir jedes einzelne html file auslesen kann
(ohne html strings etc.)

habt ihr dazu ne idee?

auslesen wär wichtig, das ausgelesene in ne datenbank stopfen sollt ja dann nicht das problem sein...

danke!

sagi 19.10.2004 13:01

welche php Version hast du/steht dir zur Verfügung?

Dateisystemfunktionen:
1) du suchst dir mal alle .html Dateien und speicherst die Dateinamen in einem Array

2) du liest die Datei in einen String

Reguläre Ausdrücke
3) du suchst nach dem Titel der Site und speicherst ihn in einer eigenen Vaiable.

4) du entfernst alles, was nicht innerhalb von <body></body> liegt

5) du entfernst alle Tags

Datenbank
6) du speicherst dateiname, content, title in der Datenbank

7) du schnappst dir den nächsten eintrag aus dem Array, das du in 1) erstellt hast und machst bei 2) weiter

bzw: wo genau brauchst du Hilfe?

reichr 19.10.2004 13:09

das auslesen des file macht ma probs.. :(

sagi 19.10.2004 13:15

PHP-Code:

$file fopen("filname""r");
$content fread($filefilsize("filename"));
fclose($file); 


sagi 19.10.2004 13:16

in php5 kannst du auch file_get_contents verwenden

http://www.php.net/manual/de/functio...t-contents.php

reichr 19.10.2004 13:49

herzlichen dank!

habs so gelöst!
schaut aus wie wenns so läuft:

PHP-Code:

$lines file ("106467.htm");
foreach (
$lines as $line_num => $line) {
echo 
"" . ($line) . "\n";



sagi 19.10.2004 14:20

ja. so kannst du sehr einfach eine Datei in ein Array lesen. Falls du aber Reguläre ausdrücke anwenden willst, die über mehrere Zeilen gehen, dann ist es besser, wenn du einen String hast. Anderenfalls müsstest du das Array vorher noch zu einem String zusammenbauen.

mfg

reichr 19.10.2004 14:20

jetz gibts nur noch folgendes prob:

habe jetz natürlich sämgliche html tags drinnen...?!

reichr 19.10.2004 14:25

Zitat:

Original geschrieben von sagi
ja. so kannst du sehr einfach eine Datei in ein Array lesen. Falls du aber Reguläre ausdrücke anwenden willst, die über mehrere Zeilen gehen, dann ist es besser, wenn du einen String hast. Anderenfalls müsstest du das Array vorher noch zu einem String zusammenbauen.

mfg

ja .. bekomme jetzt problematischer weise jede zeile extra raus.. is natürlich fürn datenbank import ein witz +g+

wie stell ich das am besten an?

Potassium 19.10.2004 14:26

entweder htmlentities()
oder
strip_tags()

je nachdem was du wirklich willst....

sagi 19.10.2004 14:29

siehe 3) - 5)

Zitat:

3) du suchst nach dem Titel der Site und speicherst ihn in einer eigenen Vaiable.
3)

http://www.php.net/manual/de/function.preg-match.php

preg_match("/<title>[^<]*<\/title>/", $contents, $title);

4)

preg_match("/<body>.*<\/body>/", $contents, $body);

5)

http://www.php.net/manual/de/function.preg-replace.php

$notags = preg_replace("/<[^>]>/","",$body[0]);

sollte in etwa so funktionieren

mfg
c.

sagi 19.10.2004 14:32

für 5) find ich die Lösung von Potassium besser.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag