Per PHPMAILER eine Mail mit anhang Dateiname= Datum versenden

mr-otin

Mitglied
Hallo,

Ich möchte per PHPMailer eine Mail mit Anhang versenden. Wie kann ich es realisieren wenn der Dateiname ein Datum ist! Kurz zur vorgehensweise.

Ein Script erstellt mir um 17:10 Uhr per Cronjob eine CSV in einem Ordner auf dem Server. Dort liegen mehrere CSV Dateien nur mit Datum. Ich möchte am nächsten Morgen die Datei versenden, die am letzten Abend um 17:10 Uhr erstellt wurde, zu versenden.

Wie muss ich vorgehen, das genau die Datei vom Vortag versendet wird?

Der Aufruf des einzuhängenden Attachments sieht so aus:

PHP:
$mail->AddAttachment('/home/www/web3/html/send_orders/****?.csv','****?.csv'); //Datei vom Server als Attachment anhängen

Sollte ich das Verzeichnis vorher auslesen?

MfG
Dave
 
Zuletzt bearbeitet:
Hi,

wenn du mit Sicherheit davon ausgehen kannst, dass die Uhrzeit im Dateinamen immer 17:10 ist, dann ist es ja relativ simpel mit der Klasse DateTime und der Methode Sub:
PHP:
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d 17:10') . "\n";

Wenn du dir mit dem 17:10 nicht sicher bist, dann liest du das Verzeichnis aus und durchläufst die Dateien solange, bis du das richtige Datum gefunden hast.
Pseudo Code
Code:
Lese Verzeichnis in Array x
Durchlaufe x als y
  Prüfe mit RegEx ob x das Datum von Gestern enthält
  Wenn Ja dann beende Schleife und verwende y
  sonst dann fahre fort

Verzeichnis lesen: http://php.net/readdir
Dateiname prüfen: http://php.net/preg_match
Ausdruck in etwa: "/^.* " . $datum . "(.*)\.csv$/"

VG
Nino
 
Zurück