Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] Fertige HTML-Dateien auswerten

Empfohlene Antworten

Veröffentlicht

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:

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 ?

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

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

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]

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.