【问题标题】:Exact same file path but different content完全相同的文件路径但不同的内容
【发布时间】:2017-03-12 21:05:07
【问题描述】:

我发生了一件非常奇怪的事情!当我在文件管理器中查看一个文件(在“Program Files (x86)”文件夹树中)时,它有一个内容,但是当我使用file_get_contents() 通过 PHP CLI 脚本检索它时,它有不同的内容(我有一些额外的行通过之前的脚本添加)-除非我在具有管理员权限的提示中运行 CLI 脚本,否则我会看到相同的内容。根据访问文件的用户的权限,同一个文件怎么可能有不同的内容? 这真的可能吗?如果可以,我在哪里可以找到有关其工作原理的更多信息?在我 25 多年的计算和编程经验中,我从未听说过这样的事情...... p>

我已经 quatro 检查了路径是否相同,并以各种方式检查了没有其他东西在欺骗我 - 但我找不到任何可能的解释!

我正在运行 Windows 10。

【问题讨论】:

  • 那么你想从我们这里得到什么?你要确认吗?因为好吧,我不能那样做,怎么说..轻描淡写..缺少一些sn-ps代码?谁说你的代码在这种情况下没有错?
  • 正如我所说,我想知道是否可以根据权限拥有不同的内容。该脚本只使用 file_get_contents() 检索文件内容。会不会是 PHP 中的一些损坏的缓存机制,只是一个错误?!
  • ... 这意味着您的文件管理器或您正在使用的 PHP 版本没有声明与 Windows Vista 兼容的清单。
  • ... PHP 可能会想到它,因为它创建了有问题的文件并根据它是否具有管理员权限向您显示不同的结果。您是否自己构建了这个 PHP 实例?如果官方 Windows 版本过时,我会感到非常惊讶。

标签: php windows file


【解决方案1】:

在其manifest 中没有requestedExecutionLevel 节点的32 位应用程序被假定为UAC-不知道并且如果它们尝试写入文件系统或注册表中的特权位置(当进程未提升)写入操作为virtualized。虚拟化文件存储在%LocalAppData%\VirtualStore

如果您需要以标准用户身份从脚本中写入文件,请手动删除虚拟存储中的文件,然后编辑文件的 ACL/安全性...

【讨论】:

  • 天哪,这正是发生的事情。不知道这种行为!我宁愿写/读失败也不愿做这个虚拟化,但也许这不是一个选择......
猜你喜欢
  • 1970-01-01
  • 2022-09-29
  • 2021-01-30
  • 2013-12-30
  • 1970-01-01
  • 2023-02-01
  • 2020-06-22
  • 1970-01-01
  • 2012-09-03
相关资源
最近更新 更多