-
-
Anführungszeichen setzen?
rename('/home/lie/vt/zg-trans-db-H.07.09.09.csv', '/home/lie/vt/zg-trans-db-H.2009.09.07.csv')
Und davor sicherheitshalber noch ein file_exists() oder is_file() ...
Edit: Ah sorry, zu schnell gelesen. Die Pfade kommen ja aus Variablen.
Sind da evtl. Symlinks drin und PHP darf diesen nicht folgen?
Oder, wie für Home-Verzeichnisse typisch, sind die Rechte auf 700 gesetzt?
Viele Grüße
Marco
This article was modified on 04 Nov 2009 at 10:55 am.

-
Marco Ziesing
The company name is only visible to registered members.
-
-
Es ist ein Unterschied ob man PHP via CLI oder Apache aufruft, da dort verschiedene Rechte und auch Konfigurationen angesprochen werden. Ins Blaue geraten würde ich auf safe_mode = on tippen, oder im Apachefall noch zusätzlich auf open_basedir_restriction (Aber dann würde eine entsprechende Fehlermeldung ausgespuckt werden). Es kann auch sein das die zu verschiebenden Dateien einem anderen Benutzer gehören und der auszuführende Nutzer nicht das Recht hat auf die Datei zuzugreifen (unter manchen wirren Konstellationen ist das sogar mit "root" der Fall)
Versuchen Sie doch mal dem Problem auf die Schliche zu kommen wenn Sie einfach ein
<?php
if(!file_exists('/home/lie/vt/zg-trans-db-H.07.09.09.csv')) echo "NO";
else echo "Yes";
?>
ausführen.
Das Sie eine Datei mit einem LinuxCLI Tool sehen heißt nicht auch das es PHP genauso sieht. Alternativ lassen Sie einfach mal jemanden Drittes einen Blick auf die Kiste werfen. Kann sich nur um irgendwas Banales handeln.

-
Stefan Pausch Premium Member
The company name is only visible to registered members.
-
Hi,
kannst Du mal Auszüge aus Deinem Skript posten?
Grüße,
Ralf

-
Ralf Baumbach
The company name is only visible to registered members.
-
Und ein Auszug von "ls -l" auf das Verzeichnis das die Daten enthält wäre auch super. Vielleicht gibts ja doch einen Dateinamenfehler.

-
Stefan Pausch Premium Member
The company name is only visible to registered members.
-
-
Hi,
ich habe das bei mir mal nachvollzogen. Ging auch nicht.
Ändere mal den Beginn der while-Schleife in folgendes um:
while (!feof($input)) {
$datei = trim(fgets($input,300));
if (empty($datei))
continue;
...
}
In der Dateiparkplatz gibt es wahrscheinlich einen Zeilenumbruch am Ende der dafür sorgt, dass die Schleife einmal zu oft durchlaufen wird.
Danach ging es zumindest bei mir.
Grüße,
Ralf

-
Ralf Baumbach
The company name is only visible to registered members.
-
Nochmal,
das Problem liegt nicht nur im Zeilenumbruch in der Datei parkplatz, sondern vor allem am Zeilenumbruch im Dateinamen. Daher funktioniert es mit der Zeile: $datei = trim(fgets($input,300));
Das trim() entfernt Zeilenumbrüche und Leerzeichen. In Deiner Version sollte rename eine Datei umbenennen, die übersetzt etwa so aussah: /home/lie/vt/zg-trans-db-R.30.10.09.csv\n
Das kann man auch ganz gut an den Fehlermeldungen sehen.
hoffe es klappt jetzt,
Grüße,
Ralf

-
Ralf Baumbach
The company name is only visible to registered members.
-