微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – filemtime找不到文件

我正在尝试使用filemtime获取上次修改某些文件的日期和时间.不幸的是,这对我的所有文件都失败了.我尝试过使用完整的完整路径(例如www.mysite.com/images/file.png).我尝试过只使用扩展名(例如/images/file.png),还只使用文件名本身(file.png).什么都行不通.如何传递路径引用以便它可以找到我的文件?谢谢!

<br />n<b>Warning</b>:  filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat Failed for www.mysite.com/images/hills.png in <b>D:\Hosting\11347607\html\mobile\updateImages.PHP</b> on line <b>20</b><br 

这是PHP脚本:

<?PHP

    include '../scripts/connection.PHP';

    //get information on this location from the database
    $sql = "SELECT * FROM types";
    $result = MysqL_query($sql);

    $array = array();
    while ($row = MysqL_fetch_array($result)) {
        $path = $row['path'] . $row['picture_url'];
        $last_mod = filemtime($path);
        $this_file = array(
            'filename' => $row['picture_url'],
            'last_mod' => $last_mod
        );
        $array[$row['type']] = $this_file;
    }

    echo json_encode(array('result'=>'success', 'message'=>$array));
?>

解决方法:

相对路径根据请求的current working directory进行解析.根据最初收到请求的PHP文件,这将从请求更改为请求.你需要做的是把它变成一条绝对的道路.

您可以使用几种技术. __DIR__魔术常量是更有用的一个但是对于你的问题,因为你知道它相对于文档根的路径你可以做到这一点.

$last_mod = filemtime($_SERVER["DOCUMENT_ROOT"]."/images/file.png");

这将使用您的Web服务器的文档根目录为您提供解决路径的起点(文件系统路径等同于http://mysite.com URL).

如果要解析相对于使用__DIR__常量的路径的路径,__DIR__非常有用.在早期的PHP版本中,您可以使用dirname(__ FILE__)来获取相同的值.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐