PHP file_exists,filemtime,堆栈,不起作用,但文件退出,

问题描述 投票:0回答:1

我需要从 csv 文件中读取一些路径并将其显示在浏览器中。

我可以用

读取文件
file_get_contents.

但是 csv 文件的编码是错误的。 所以我需要使用

mb_convert_encoding($array[$i], 'UTF-8', 'UTF-16');

获得正确的路径。

此后,我用标签显示文件名和路径

echo "<a href='" . $encoded_path . "'>" . $only_filname ."</a>";

当我点击链接时,文件将被打开。效果很好!

最后我需要显示最后修改日期。这是我的问题 我写了

echo "Content last changed: ".date("F d Y H:i:s.", filemtime($encoded_path));

我弄错了日期......每个日期都是“1970”

可能出了什么问题?

我尝试使用其他功能

stat() -> mtime

没成功。 这就是为什么我想检查文件是否存在......

我尝试过这个

if (file_exists())

所以我看到,该文件没有找到

我尝试将路径更改为绝对路径 - >没有帮助

我的路径是这样的

从 csv 文件中,我得到了这个:

$path = "files/directory1/my file.pdf";

我尝试使用

$newpath =  "../../files/directory1/my file.pdf" // not work
$newpath =  "c:/xampp/htdocs/web/files/directory1/my file.pdf" // not work
$newpath =  __DIR__ . $path; //not work
$newpath =  $_SERVER['DOCUMENT_ROOT'] . $path; //not work

如果我复制每个版本的输出并将其粘贴到 Windows 资源管理器中,则该路径有效 该路径也适用于标签。

如果我显示路径,请用鼠标选择它并将其复制粘贴到 file_exists 函数中,它也可以工作

$newpath =  "../../files/directory1/my file.pdf"; echo $newpath;

if(file_exist("../../files/directory1/my file.pdf")) // works

只有 file_exists ,其他 filetime 函数不起作用

谢谢你

php file-exists filemtime
1个回答
0
投票

不间断空格

UTF-8和UTF-16中有一个字符看起来与空格字符相同,但实际上是完全不同的字符: https://www.compart.com/en/unicode/U+00A0

不间断空格字符在视觉上与空格字符没有区别,但当您尝试使用 str_replace 替换所有空格时,不会被转换。 不间断空格主要出现在像您这样的情况下,当您从复杂的源复制数据时,例如空白安全的 CSV 文件或使用

&nbsp;

空格的网站。

以下是对该角色的解释以及它为何有用:

https://en.wikipedia.org/wiki/Non-breaking_space

© www.soinside.com 2019 - 2024. All rights reserved.