ottscho
Goto Top

Neuste Datei in einem Ordner ermitteln

Guten Morgen,

ich lese eine CSV Datei aus und übermittle die Daten an einen Onlineshop.
Nun erstellt das ERP automatisch den CSV-Export und hängt hinter den normalen Namen noch Datum und Uhrzeit.

Ich habe also in meinem Ordner mehrere CSV Dateien welche z.B. so aussehen:

Exportwebshop_20120111_111539_complete.csv
Exportwebshop_20120114_181150_complete.csv

etc.

Der ERP Hersteller verlangt 1000€ um den Dateinamen zu ändern. Daher wollten wir das so lassen und das PHP Script, welches den Import in den Shop macht sollte immer nur die aktuellste CSV einlesen.

Nun sehe ich zwei Möglichkeiten:

1.) Man zerlegt den Dateinamen und schreibt Datum+Zeit zusammen. Die die höchste Zahl ist somit die neuste CSV Datei.
2.) Bei PHP gibt es ein Funktion um das Erstellungs-/Änderungsdatum zu ermitteln.

Habt ihr schon mal was in der Art gemacht?
Wie würdet ihr es machen?

Danke für eure Tipps

Gruß
ottscho

Content-Key: 180428

Url: https://administrator.de/contentid/180428

Printed on: April 20, 2024 at 03:04 o'clock

Member: StefanKittel
StefanKittel Feb 13, 2012 at 08:35:56 (UTC)
Goto Top
Hallo,

warum so kompliziert?

Die Datei die Du einlesen möchtest hat doch immer das aktuelle Datum?
Also machst Du ein Dir auf "*20120214*.csv" und fertig.

Stefan
Member: ottscho
ottscho Feb 13, 2012 at 09:38:23 (UTC)
Goto Top
Hi Stefan,

ich wusst nicht dass das geht ;)

Also meinst du einfach so:

$handle = fopen ("transfer/*20120214*.csv","r");
Member: StefanKittel
StefanKittel Feb 13, 2012 at 10:28:30 (UTC)
Goto Top
Hallo,

na fast.

Siehe
http://php.net/manual/de/class.dir.php

So müßte es sein zum auflisten und da kommt ja nur eine Datei zurück.
$d = dir("/etc/php5/*20120214*.csv");

Stefan
Member: ottscho
ottscho Feb 13, 2012 at 11:02:12 (UTC)
Goto Top
Zitat von @StefanKittel:
Hallo,

na fast.

Siehe
http://php.net/manual/de/class.dir.php

So müßte es sein zum auflisten und da kommt ja nur eine Datei zurück.
$d = dir("/etc/php5/*20120214*.csv");

Stefan

HI Stefan,

das geht so leider nicht.

Sobald ich mehr als nur den Pfad angeben, bekomme ich kein Rückgabewert.

Gruß
ottscho
Member: nxclass
nxclass Feb 13, 2012 at 11:04:51 (UTC)
Goto Top
$dateiname = max(  $liste_der_Dateinamen );
das sollte auch gehen.

EDIT:
Bei PHP gibt es ein Funktion um das Erstellungs-/Änderungsdatum zu ermitteln.
aber sicher doch: http://php.net/manual/en/function.filemtime.php
Member: ottscho
ottscho Feb 13, 2012 at 11:11:04 (UTC)
Goto Top
Habe es auf die schnelle nun so:

$handle=opendir ("transfer");  
echo "Verzeichnisinhalt:<br>";  
while ($datei = readdir ($handle)) {
  if(strpos($datei,"20120213")!==false) echo $datei."<br />";  
}
closedir($handle);

Funktioniert. Aber ist wohl nicht die schönste Möglichkeit...

Danke euch