Moin Moin...
Folgendes Problem:
ich habe viele Dateien auf meinem Webserver (Wetterdaten).
jetzt möchte ich gezielt Daten herunterladen, tue mich aber schwer beim finden der Datei.
Beispiel:
auf dem Server liegen folgenden Dateien
20000124.txt
20000125.txt
20000126.txt
Also über die Dateinamen finde ich das jetzt nicht heraus, also brauch ich andere Kriterien.
-rw-r--r-- 1 nax022b nax022b 44196 Oct 28 2007 20000124.txt
-rw-r--r-- 1 nax022b nax022b 44018 Oct 28 2007 20000125.txt
-rw-r--r-- 1 nax022b nax022b 45343 Oct 28 2007 20000126.txt
USW.
Also hab ich mir so geholfen:
<?php
$ftp_server = "IP_des_Servers" ;
$ftp_user_name = "Username" ;
$ftp_user_pass = "Passwort" ;
$remote_pfad = "html/aktuell/";
// ----------------------------------------------------------------
$link = ftp_connect($ftp_server);
if (!ftp_login($link, $ftp_user_name, $ftp_user_pass)) {
echo "Login gescheitert. <br>";
} else {
echo "Erfolgreicher Verbindungsaufbau <br>";
}
// ----------------------------------------------------------------
if (ftp_chdir($link, $remote_pfad)) {
echo "Aktuelles Verzeichnis: " . ftp_pwd($link) . "<br>"; // zeigt nur, wo ich mich befinde, wird später nichtgebraucht.
}
// ----------------------------------------------------------------
$dateiname = ftp_rawlist($link,".");
$result = count($dateiname);
$x = 2 ;
while ($x < $result) {
echo "$dateiname[$x] <br>";
$ndateiname[$x] = substr($dateiname[$x],-25) ;
echo "$ndateiname[$x] <br>";
list ($x1, $x2,$x3, $x4, $x5) = split('[ ]', $ndateiname[$x] );
echo "<b>Monat</b> $x1 <br>";
echo "<b>Tag</b> $x2 <br>";
echo "<b>?</b> $x3 <br>";
echo "<b>Jahr</b> $x4 <br>";
echo "<b>Dateiname</b> $x5 <br>";
echo "-----------------------------------------<br>";
$x++ ;
}
?>
Okay, der macht schonmal das was ich will, aber nur, wenn die Länge des Dateinamens immer gleich ist.
----------------------------------------
-rw-r--r-- 1 nax022b nax022b 3260 Oct 28 2007 20070501.txt
Oct 28 2007 20070501.txt
Monat Oct
Tag 28
?
Jahr 2007
Dateiname 20070501.txt
----------------------------------------
Allerdings bin ich damit nicht ganz glücklich, weil dort wo das Fragezeichen steht ... da fehlt was :
Also scheint mein LIST Befehl falsch zu sein.
Und was mache ich , wenn die Länge des Dateinamens schwankt.
Also kann $ndateiname[$x] = substr($dateiname[$x],-25) ; nicht richtig sein, das müsste irgendwie flexibel gestaltet werden.
Was auch ein wenig irritiert ist, das er OCT ausgibt, statt einfacher 10.
Frage, hat jemand von euch eine Idee, wie ich das verbessern kann?
Vielen Dank vorab für Anregungen und Tipps.
Gruss, Peter
Folgendes Problem:
ich habe viele Dateien auf meinem Webserver (Wetterdaten).
jetzt möchte ich gezielt Daten herunterladen, tue mich aber schwer beim finden der Datei.
Beispiel:
auf dem Server liegen folgenden Dateien
20000124.txt
20000125.txt
20000126.txt
Also über die Dateinamen finde ich das jetzt nicht heraus, also brauch ich andere Kriterien.
-rw-r--r-- 1 nax022b nax022b 44196 Oct 28 2007 20000124.txt
-rw-r--r-- 1 nax022b nax022b 44018 Oct 28 2007 20000125.txt
-rw-r--r-- 1 nax022b nax022b 45343 Oct 28 2007 20000126.txt
USW.
Also hab ich mir so geholfen:
<?php
$ftp_server = "IP_des_Servers" ;
$ftp_user_name = "Username" ;
$ftp_user_pass = "Passwort" ;
$remote_pfad = "html/aktuell/";
// ----------------------------------------------------------------
$link = ftp_connect($ftp_server);
if (!ftp_login($link, $ftp_user_name, $ftp_user_pass)) {
echo "Login gescheitert. <br>";
} else {
echo "Erfolgreicher Verbindungsaufbau <br>";
}
// ----------------------------------------------------------------
if (ftp_chdir($link, $remote_pfad)) {
echo "Aktuelles Verzeichnis: " . ftp_pwd($link) . "<br>"; // zeigt nur, wo ich mich befinde, wird später nichtgebraucht.
}
// ----------------------------------------------------------------
$dateiname = ftp_rawlist($link,".");
$result = count($dateiname);
$x = 2 ;
while ($x < $result) {
echo "$dateiname[$x] <br>";
$ndateiname[$x] = substr($dateiname[$x],-25) ;
echo "$ndateiname[$x] <br>";
list ($x1, $x2,$x3, $x4, $x5) = split('[ ]', $ndateiname[$x] );
echo "<b>Monat</b> $x1 <br>";
echo "<b>Tag</b> $x2 <br>";
echo "<b>?</b> $x3 <br>";
echo "<b>Jahr</b> $x4 <br>";
echo "<b>Dateiname</b> $x5 <br>";
echo "-----------------------------------------<br>";
$x++ ;
}
?>
Okay, der macht schonmal das was ich will, aber nur, wenn die Länge des Dateinamens immer gleich ist.
----------------------------------------
-rw-r--r-- 1 nax022b nax022b 3260 Oct 28 2007 20070501.txt
Oct 28 2007 20070501.txt
Monat Oct
Tag 28
?
Jahr 2007
Dateiname 20070501.txt
----------------------------------------
Allerdings bin ich damit nicht ganz glücklich, weil dort wo das Fragezeichen steht ... da fehlt was :

Also scheint mein LIST Befehl falsch zu sein.
Und was mache ich , wenn die Länge des Dateinamens schwankt.
Also kann $ndateiname[$x] = substr($dateiname[$x],-25) ; nicht richtig sein, das müsste irgendwie flexibel gestaltet werden.
Was auch ein wenig irritiert ist, das er OCT ausgibt, statt einfacher 10.
Frage, hat jemand von euch eine Idee, wie ich das verbessern kann?
Vielen Dank vorab für Anregungen und Tipps.
Gruss, Peter
Kommentar