2017-02-14 12:51
浏览 63


I am trying to get the date in which a file was modified or created with PHP. To do this I am using filectime function but it is giving me always the following error:

Warning: filectime(): stat failed for path

where path is the route in which I have stored the file.

The route is something similar to this:

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

and I have to replace the url to codify the spaces of the file:

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

If I do this I can use a link to open this file on my browser but it shows the warning that I have put before if I try to use the same path on filectime function.

Am I missing something?

Thanks in advance!

图片转代码服务由CSDN问答提供 功能建议

我试图获取用PHP修改或创建文件的日期。 要做到这一点,我使用 filectime 功能,但 它总是给我以下错误:

警告:filectime():路径的stat失败 < p>其中path是我存储文件的路径。


  http:  // MYIP /文件/动物文件1.pdf 
http:// MYIP /文件/动物文件2.pdf 

我有 替换url来编码文件的空格:

  $ path = str_replace('','%20',$ path); 
  <  / pre> 

如果我这样做,我可以使用链接在我的浏览器上打开此文件,但如果我尝试在 filectime <上使用相同的路径,它会显示我之前发出的警告 / code> function。



  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doutang3760 2017-02-14 13:25

    The filectime function expects a string path as a parameter. It is just a wrapper function over the usage of Posix stat system call.

    The system call:

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

    So, it expects a parameter as though it's on your filesystem. The URL gets encoded to have a neat white-space-less identifier on the server side to execute appropriate scripts.

    Don't bother with that "codification"! Just use a standard string path as you'd use on your UNIX shell, relative to the script directory.

    In this case, just provide the right path to the PHP function!

    filectime("documents/animals document 2.pdf");
    点赞 评论

相关推荐 更多相似问题