Zum Inhalt springen

[PHP] Fertige HTML-Dateien auswerten


Empfohlene Beiträge

Hallo zusammen,

ist es möglich fertige HTML-Dateien auszuwerten? Was ich genau meine ist, ich bekomme HTML-Dateien als Anhang in einer Email zugeschickt. Bestimmte Werte in dieser HTML-Datei bzw. in diesem HTML-Code möchte ich anhand von PHP auslesen und in eine DB schreiben... ist dies möglich???

Ich weiß, dass das Ganze über Formulare um einiges einfacher ist, aber die gegeben Vorraussetzungen lassen dies nicht zu.

Dann noch eine Zusatzfrage für alle Crackzzzz :)

Ist es mit PHP möglich, die Emails, die man bekommt, automatisch abzufangen und die Anlagen (s.o.) in einem Ordner auf einem Server zu hinterlegen... So, dass das Ganze automatiert ist und nicht jedesmal von einem Benutzer erst abgerufen werden muss und dann in den Ordner gespeichert werden muss...

Ich hoffe ihr versteht mich... wenn nicht einfach fragen...

Vielen Dank schon mal...

Sven:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ich kenne das, hab sowas ähnliches auch schon gemacht, nur bei mir waren's Word-Dateien.

Also, um Mails abzurufen:


<?php
$config['mailbox'] = "mail.domain.de";
$config['type'] = "pop3";
$config['port'] = "110";
$config['username'] = "user";
$config['password'] = "pass";

$mailbox = "{".$config['mailbox']."/".$config['type'].":".$config['port']."}INBOX";
$username = $config['username'];
$password = $config['password'];
$mailbox = @imap_open($mailbox, $username, $password);
[/PHP]

Die Zugangsdaten etc. musst du natürlich anpassen.

Dann prüfen, wieviele Mails im Postfach sind und mit 'ner Schleife abrufen:

[PHP]
$nMessages = @imap_num_msg($mailbox);
for($i = 1; $i <= $nMessages; $i++) {

Dann in jeder Mail mit 'ner weiteren Schleife alle Anhänge prüfen und in einem bestimmten Ordner speichern:


$struktur = imap_fetchstructure($mailbox,$i);
$attach['filename'] = $struktur->parts[1]->dparameters[0]->value;

if ($attach['filename']!="") {
$xc = count($struktur->parts)-1;
$anr = 1;
for ($xy=1;$xy<=$xc;$xy++) {
$anr++;
$filename = $struktur->parts[$xy]->dparameters[0]->value;
$file = imap_base64(imap_fetchbody($mailbox,$i,$anr));
$data = @fopen("pfad/zum/ordner/".urldecode($filename)."",'w+');
@fputs($data, $file);
@fclose($data);
[/PHP]

Zum Schluss Verbindung schliessen:

[PHP]
imap_expunge($mailbox);
?>

Was das auslesen angeht:

Sind die auszulesenden Werte innerhalb des Codes besonders gekennzeichnet, z.B. durch Kommentare, spezielle Tags etc. ? Oder wie willst du erkennen, was unnützer Code, text etc. ist und was die relevanten Werte sind ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey das ist ja Super...

wäre nur gut wenn ich wüsste wo die ganzen for-Schleifen enden ;)

Das mit dem auslesen ist folgendermaßen:

es handelt sich um ein Dokument, wo Werte in einer Tabelle angegeben sind...wenn man so will in Tags.

Wenn jetzt zum Beispiel eine Zeile mit "PLZ: 12345" vorhanden ist, möchte ich den Wert 12345 in eine Datenbank haben...

Im Quellcode von HTML würde das Ganze ja jetzt ungefähr so aussehen:

<B>

<FONT color=#000000>

PLZ:

</FONT>

</B>

<B>

<FONT color=#800080>

64293

</FONT>

</B>

Jetzt müsste ich wissen wie man den Wert bekommt....

ABer vielen Dank schon mal!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey das ist ja Super...

wäre nur gut wenn ich wüsste wo die ganzen for-Schleifen enden ;)

Mach einfach zwischen

@fclose($data);

und

imap_expunge($mailbox);

drei schließende geschweifte Klammern. if ist auch nicht geschlossen. Anhand der guten Kommentierung hättest Du das aber selbst herausfinden können.

gruß vom pelz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn jetzt zum Beispiel eine Zeile mit "PLZ: 12345" vorhanden ist, möchte ich den Wert 12345 in eine Datenbank haben...

Im Quellcode von HTML würde das Ganze ja jetzt ungefähr so aussehen:

<B>

<FONT color=#000000>

PLZ:

</FONT>

</B>

<B>

<FONT color=#800080>

64293

</FONT>

</B>

Jetzt müsste ich wissen wie man den Wert bekommt....

ABer vielen Dank schon mal!!!

Das geht in etwa so:


$pattern='§<B>\w*<FONT color=#000000>\w*PLZ:\w*</FONT>\w*</B>\w*<B>\w*<FONT color=#800080>\w*(\d{5})\*?</FONT>\w*</B>§';
$plzString = preg_replace($pattern, "\$1", $zeile);

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...