Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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:

Geschrieben

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 ?

Geschrieben

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!!!

Geschrieben
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

Geschrieben

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]

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...