2017-02-14 4 views
0

Ich versuche, das Datum zu erhalten, in dem eine Datei mit PHP geändert oder erstellt wurde. Um dies zu tun mir filectime Funktion verwenden, aber es gibt mir immer folgende Fehlermeldung:Warnung: filectime(): Stat fehlgeschlagen für Pfad

Warning: filectime(): stat failed for path

wo Weg die Strecke ist, in dem ich die Datei gespeichert habe.

Die Route ist so etwas wie dies:

http://MYIP/documents/animals document 1.pdf 
http://MYIP/documents/animals document 2.pdf 
... 

und ich habe die URL zu ersetzen, die Räume der Datei zu kodifizieren:

$path= str_replace(' ', '%20', $path); 

Wenn ich dies tun kann ich einen Link verwenden um diese Datei in meinem Browser zu öffnen, aber es zeigt die Warnung, die ich vorher gesetzt habe, wenn ich versuche, den gleichen Pfad auf filectime Funktion zu verwenden.

Fehle ich etwas?

Vielen Dank im Voraus!

+0

http://php.net/manual/en/wrappers.http.php: _ "Unterstützt stat(): Nein" _ - Sie können dies einfach nicht für HTTP-URLs verwenden. – CBroe

+1

_ "Ich versuche, das Datum zu erhalten, an dem eine Datei mit PHP verändert oder erstellt wurde" _ - verwende also einen Dateisystempfad, keine HTTP-URL. – CBroe

Antwort

1

Die filectime Funktion erwartet als Parameter eine Zeichenfolge Pfad. Es ist nur eine Wrapper-Funktion über die Verwendung von Posix Stat Systemaufruf.

Der Systemaufruf:

int stat(const char *pathname, struct stat *buf);

So erwartet es einen Parameter, als ob es auf Ihrem Dateisystem ist. Die URL wird codiert, um auf der Serverseite einen sauberen Leerraum-Identifizierer zu haben, um geeignete Skripte auszuführen.

Ärgere dich nicht mit dieser "Kodifizierung"! Verwenden Sie einfach einen Standard-Zeichenfolgenpfad, den Sie in Ihrer UNIX-Shell relativ zum Skriptverzeichnis verwenden.

In diesem Fall geben Sie einfach den richtigen Pfad zur PHP-Funktion!

filectime("documents/animals document 2.pdf"); 
+1

_ "Sie benötigen Escape-Sequenzen für die weißen Leerzeichen im Pfad" _ - nein, nicht im Dateisystem. – CBroe

+0

@CBroe Ah! Ja, du hast Recht! Danke für die Korrektur! Ich war immer noch im Kontext der UNIX-Shell, während ich diesen Satz eintippte ...: P – varun

+0

@varun Aber die IP gehört mir aber extern daher musste ich auf die Datei mit dem Pfad zugreifen: 'IP/animals/animals document 2.pdf '. –

Verwandte Themen