我需要从 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 函数不起作用
谢谢你
UTF-8和UTF-16中有一个字符看起来与空格字符相同,但实际上是完全不同的字符: https://www.compart.com/en/unicode/U+00A0
不间断空格字符在视觉上与空格字符没有区别,但当您尝试使用 str_replace 替换所有空格时,不会被转换。 不间断空格主要出现在像您这样的情况下,当您从复杂的源复制数据时,例如空白安全的 CSV 文件或使用
空格的网站。
以下是对该角色的解释以及它为何有用: https://en.wikipedia.org/wiki/Non-breaking_space