FTP download mit Curl - Dateiname "flexibel"

sandroP

Erfahrenes Mitglied
Ich habe einen FTP Download mit cURL welcher super funktioniert.
PHP:
$ftp1['user'] = 'user';
$ftp1['passwd'] = 'pass';
$ftp1['host'] = 'ftp-host.de';
$ftp1['pfad'] = '/datei/pfad/';
$ftp1['file'] = 'dateiname';
$ftpFile1 = 'speicherdat.txt';

Function curlDownload($ftp1,$ftpFile1)
{
$fp1= fopen($ftpFile1, "w");

$url1="ftp://".$ftp1['user'].":".$ftp1['passwd']."@".$ftp1['host'].":21" .
$ftp1['pfad'].$ftp1['file'];
$handle1 = curl_init();
curl_setopt($handle1, CURLOPT_URL, $url1);
curl_setopt($handle1, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($handle1, CURLOPT_UPLOAD, 0);
curl_setopt($handle1, CURLOPT_FILE, $fp1);
$result1 = curl_exec($handle1);
$info1 = curl_getinfo ($handle1);
curl_close($handle1);
return $info1;
}

$info1 = curlDownload($ftp1,$ftpFile1);

Ich möchte diesen nun für eine andere Sache nutzten. Dabei habe ich aber nun folgendes Problem.
Die Dateinamen ändern sich ständig, die alten Dateien sind aber weiterhin im selben
Verzeichnis verfügbar. Die hinteren Ziffern ergeben sich durch das Datum und die Zeit vom erstellen der Datei (05. 12:34)

Ich möchte nun aber immer nur die aktuelleste "DWSG" Datei downloaden.

VHDL54_UHISG_051234.txt
VHDL54_UHISG_051334.txt
VHDL54_DWSG_051434.txt
VHDL54_DWSG_051534.txt
VHDL54_DWSG_051634.txt
...
..

Wie mach ich das am schlausten?
 
Schau mal, hab ich hier gefunden:

PHP:
<?php
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL,"ftp://ftp.gnu.org");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec ($curl);
    curl_close ($curl);
    print $result;
?>
 
Das gibt mir aber die Dateien + zusätzliche Daten der Datei aus.

-rw-r--r-- 2 afdftp ftp-dwd 1024 Jun 8 02:34 VHDL54_DWSG_080234 -rw-r--r-- 2 afdftp ftp-dwd 1005 Jun 8 04:34 VHDL54_DWSG_080434 -rw-r--r-- 2 afdftp ftp-dwd 1005 Jun 8 5:34 VHDL54_DWSG_080534 -rw-r--r-- 2 afdftp ftp-dwd 1436 Jun 7 12:34 VHDL54_DWSG_071234 -rw-r--r-- 2 afdftp ftp-dwd 1436 Jun 7 13:34 VHDL54_DWSG_071334 -rw-r--r-- 2 afdftp ftp-dwd 1403 Jun 7 14:34 VHDL54_DWSG_071434


möchte aber, dass mir nur der aktuellste dateinamen ausgeben wird.

in dem Fall: VHDL54_DWSG_080534
 
Bisschen Eigeninitiative wäre schon angebracht, nicht?

PHP:
<?php
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL,"ftp://ftp.gnu.org");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 
    $result = curl_exec ($curl);
    curl_close ($curl);
    $lines =  explode("\n", $result);
    
    foreach ($lines as $line)
    {
    	$file = preg_replace('/.*\ (.*?)$/', '$1', $line);
     	echo $file . '<br/>'; // << Die Datei!
    }
?>
 
Zurück