Dateinamen auslesen
knuddel
- php
Hallo Leute,
ich hab folgendes Problem:
also ich hab 2 Server auf dem einen Server A habe ich meine SQL Datenbank und mein PHP Script und so. und auf dem zweiten, Server B, habe ich txt-dateien, in einem vordefinierten Ordner, deren Namen ich angezeigt haben möchte. Also habe ich folgenden quelltext im Handbuch gefunden und angepasst:
<?php
if ($handle = opendir('ftp://servernameB/Verzeichnis/Unterverzeichnis')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
while (false !== ($file = readdir($handle))) {
echo "$file\n";
echo '<br />';
}
closedir($handle);
}
?>
wenn ich diesen quelltext ausführe dann gibt er mir nur folgendes aus:
Directory handle: Resource id #4 Files:
aber leider nicht die dateinamen.
Ich hab es auch schon mit http:// und einem absoluten pfad probiert leider hat es nicht funktioniert! :(
Könnt ihr mir helfen?
Ich brauch nämlich die dateinamen, weil ich jede einzelne der dateien in diesem Ordner in meine Datenbank einlesen will. Und da die txt-dateien von einem anderem system automatisch erzeugt werden kenne ich leider die dateinamen nicht!
Bitte helft mir!
Gruß
knuddel
Moin,
schau dir mal die Funktion
dir
Auch der erste Kommentar zu der Funktion könnte für dich interessant sein.
Grüsse,
Juan
Hi Juan!
und welchen Kommentar meinst du? als ich mir die erste user-note durch gelesen habe, hat mir das nicht wirklich geholfen, auch die anderen notes haben nicht wirklich weitergeholfen!
also vielleicht etwas genauer? was meinst du?
Gruß
knuddel
Hi,
also vielleicht etwas genauer? was meinst du?
$d = dir($dataDir);
while (false !== ($entry = $d->read()))
if ($entry != '..' && $entry != '.' && file_exists("$dataDir\\$entry"))
{
// do stuff
}
ich denke, daraus kann man sehen, dass in $entry der Dateiname steht und das ist doch was du brauchst, odeR?
Grüsse,
Juan
Hi Juan,
ja den Dateinamen brauch, leider ergibt diese varriant nur das selbe ergebniss wie meine! und es werden immer noch keine Dateinamen angezeigt!
Danke das du es versucht hast!
Vielleicht weiß ja jemand anderes wo mein problem liegt?
Wäre für eure Hilfe sehr dankbar!
Gruß
knuddel
Hi,
ja den Dateinamen brauch, leider ergibt diese varriant nur das selbe ergebniss wie meine! und es werden immer noch keine Dateinamen angezeigt!
zeig doch mal den Code, den du zuletzt benutzt hast.
Eigentlich müsste es so, wie ich es vorhin geschrieben hab, gehen...
$d = dir("ftp://Server/Verzeichnis/");
while (false !== ($entry = $d->read()))
if ($entry != '..' && $entry != '.')
{
echo $entry.'<br>'; //Hier müsste dann ein Dateiname rauskommen
}
Grüsse,
Juan
Hi nochmal,
also ich hab es grad nochmal gestest und das funktioniert wunderbar:
$d = dir("ftp://Server/Verzeichnis/");
while (false !== ($entry = $d->read()))
if ($entry != '..' && $entry != '.')
{
if (is_file($entry)){
echo $entry.'<br>'; //Hier müsste dann ein Dateiname rauskommen
}
}
Grüsse,
Juan
Hallo Juan,
also ich mein eigentlicher Quelltext sieht so aus:
<?php
if ($handle = opendir("ftp://servername/verzeichnis/unterverzeichnis")) {
echo "Directory handle: $handle\n";
echo "Files:\n";
while (false !== ($file = readdir($handle))) {
echo "$file\n";
echo '<br />';
}
closedir($handle);
}
?>
Hier bekomme ich bei der Ausführung dann folgendes Ergebnis:
Directory handle: Resource id #4 Files:
Also diesen Quellcode von oben habe ich aus dem php Handbuch.
Dann habe ich jetzt mal deinen Code ausprobiert und zwar so:
<?php
$d = dir("ftp://servername/verzeichnis/unterverzeichnis");
while (false !== ($entry = $d->read()))
if ($entry != '..' && $entry != '.')
{
if (is_file($entry)){
echo $entry.'<br>';
}
}
$d->close();
?>
Und hab eine leere Seite ohne jede Fehlermeldung!
Bis jetzt habe ich nur herausgefunden das die while-schleife nicht ausgeführt wird aber warum weiß ich leider nicht!
und hast du eine Idee?
kann das mit der serverstruktur zusammenhängen?
Gruß
knuddel
Hi,
<?php
$d = dir("ftp://servername/verzeichnis/unterverzeichnis");
while (false !== ($entry = $d->read()))if ($entry != '..' && $entry != '.')
{
if (is_file($entry)){echo $entry.'<br>';
}
}$d->close();
?>
Und hab eine leere Seite ohne jede Fehlermeldung!
Bis jetzt habe ich nur herausgefunden das die while-schleife nicht ausgeführt wird aber warum weiß ich leider nicht!
wie gesagt, bei mir hat es genauso funktioniert. Ich musste mich allerdings beim FTP-Server mit Benutzernamen und Passwort anmelden, so das mein Paramter für dir so aussah:
ftp://Benutzername:Passwort@servername/verzeichnis/
Vielleicht macht er bei dir die while-Schleife nicht, weil er keine Verbindung zum FTP-Server öffnen kann, wegen fehlendem Benutzernamen/Passwort.
Bist du dir sicher, dass du ohne Benutzer/PW auf den FTP-Server kommst?
Grüsse,
Juan
Hallo Juan,
also mir wurde gerade mitgeteilt das aus IT technischen Gründe ich keine ftp-Rechte bekommen kann.
Gibt es denn vielleicht irgendeine andere möglichkeit außer ftp?
Gruß
knuddel
Hi,
also mir wurde gerade mitgeteilt das aus IT technischen Gründe ich keine ftp-Rechte bekommen kann.
Gibt es denn vielleicht irgendeine andere möglichkeit außer ftp?
also in dem Fall bin ich raus. Wobei ich die Gegenseite nicht wirklich verstehen kann. Wenn du die Dateinamen brauchst und ihr zusammen arbeitet, sehe ich keinen Grund, warum du keinen lesenden Zugriff auf den FTP-Server bekommen solltest. Die Rechte können ja auch speziell für das Unterverzeichnis sein, welches du benötigst.
Wie gesagt, für mich unverständlich und einen anderen Weg wüsste ich nicht....
Grüsse,
Juan