2017-02-14 1 views
0

J'essaie d'obtenir la date à laquelle un fichier a été modifié ou créé avec PHP. Pour ce faire, je me sers filectime fonction mais il me donne toujours l'erreur suivante:Avertissement: filectime(): stat a échoué pour le chemin

où chemin

Warning: filectime(): stat failed for path

est la voie dans laquelle j'ai stocké le fichier.

La route est quelque chose de similaire à ceci:

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

et je dois remplacer l'URL pour codifier les espaces du fichier:

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

Si je fais ce que je peux utiliser un lien pour ouvrir ce fichier sur mon navigateur mais il montre l'avertissement que j'ai mis avant si j'essaye d'utiliser le même chemin sur la fonction filectime.

Ai-je raté quelque chose?

Merci d'avance!

+0

http://php.net/manual/en/wrappers.http.php: _ « Prise en charge stat(): Non » _ - vous ne pouvez pas l'utiliser pour les URL HTTP. – CBroe

+1

_ "J'essaie d'obtenir la date à laquelle un fichier a été modifié ou créé avec PHP" _ - utilisez donc un chemin de système de fichiers, pas une URL HTTP. – CBroe

Répondre

1

La fonction de filectime attend un chemin de chaîne en tant que paramètre. C'est juste une fonction d'emballage sur l'utilisation de Posix stat appel système.

L'appel système:

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

Ainsi, il attend un paramètre comme si ce qui est sur votre système de fichiers. L'URL est encodée pour avoir un identifiant net sans espace côté serveur afin d'exécuter les scripts appropriés.

Ne vous embêtez pas avec cette "codification"! Utilisez simplement un chemin de chaîne standard comme vous le feriez sur votre shell UNIX, par rapport au répertoire de script.

Dans ce cas, fournissez simplement le bon chemin vers la fonction PHP!

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

_ "Vous avez besoin de séquences d'échappement pour les espaces blancs dans le chemin" _ - non vous ne le faites pas, pas dans le système de fichiers. – CBroe

+0

@CBroe Ah! Ouais, tu as raison! Merci pour la correction! J'étais encore dans le contexte du shell UNIX en tapant cette phrase ...: P – varun

+0

@varun Mais l'IP est à moi mais externe donc j'ai dû accéder au fichier avec le chemin: 'IP/animals/animals document 2.pdf '. –