PHP chmod在没有工作时报告成功 - 为什么?

时间:2010-06-11 13:58:27

标签: php

我试过这个:

echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />';
echo chmod($mdbFilename, 0777);
echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />';

我得到的输出是:

0666
1
0666

所以上面没有用!为什么会这样?为什么chmod报告是真的?

变量$mdbFilename包含文件的路径C:\wamp\www\webs\db\access_db_1276264459.mdb

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

Windows不支持* NIX octal permissions

编辑: 在重新阅读文件的权限之前,您可能还想尝试clearing the stat cache,ala Pekka的回复。

编辑#2:由于0777的权限指定文件是可执行的,您为什么还要对文件执行此操作?

它是MDB文件或Microsoft Access 数据库文件。为什么需要执行?我认为Windows通过具有可执行扩展名(例如.EXE.BAT.COM)来确定某些内容是否可执行。

答案 1 :(得分:2)

更新:我忽略了OP在Windows上,那里没有chmod。我将离开答案,因为如果这是在Linux上,我认为它适用。

旧答案:尝试在每一行之间添加clearstatcache()来电。