PHP chmod在不起作用时报告成功-为什么?

PHP chmod在不起作用时报告成功-为什么?,php,Php,我试过这个: echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />'; echo chmod($mdbFilename, 0777); echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />'; 因此,上述措施没有奏效!为什么会这样?为什么chmod报告为真 变量$mdbFilename包含文件的路径,该文件是C:\wamp\

我试过这个:

echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />';
echo chmod($mdbFilename, 0777);
echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />';
因此,上述措施没有奏效!为什么会这样?为什么chmod报告为真

变量
$mdbFilename
包含文件的路径,该文件是
C:\wamp\www\webs\db\access\u db\u 1276264459.mdb


欢迎提供任何帮助。

Windows不支持*NIX

编辑:阿拉·佩卡的回答是,在重新读取文件的权限之前,您可能还想尝试一下

编辑#2:既然
0777
的权限指定该文件是可执行的,为什么还要对该文件执行此操作


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

Windows不支持*NIX

编辑:阿拉·佩卡的回答是,在重新读取文件的权限之前,您可能还想尝试一下

编辑#2:既然
0777
的权限指定该文件是可执行的,为什么还要对该文件执行此操作


它是一个MDB文件,或Microsoft Access™ 数据库文件。为什么这需要执行?我认为Windows通过其可执行扩展名(如
.EXE
.BAT
,或
.COM
)来确定某个东西是否可执行。

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


旧答案:尝试在每条线路之间添加一个呼叫。

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


旧答案:尝试在每条线路之间添加呼叫。

啊,这是在Windows上。那就是解决办法+1我认为它确实有效-它似乎对php.net上的这个评论员有效:??@Abs:
0777
对于用户、组和其他人来说是读取(
4
)+写入(
2
)+执行(
1
)。Windows版本可能被配置为对只读文件返回
0444
,对读/写文件返回
0666
。实际上,似乎越来越多的人说它不起作用,一旦有人在评论中说它起作用。我得想点别的办法。谢谢。@R.Bemrose:大多数时候Windows也允许执行任何文件,所以读写时是
0777
,只读时是
0555
。啊,这是在Windows上。那就是解决办法+1我认为它确实有效-它似乎对php.net上的这个评论员有效:??@Abs:
0777
对于用户、组和其他人来说是读取(
4
)+写入(
2
)+执行(
1
)。Windows版本可能被配置为对只读文件返回
0444
,对读/写文件返回
0666
。实际上,似乎越来越多的人说它不起作用,一旦有人在评论中说它起作用。我得想点别的办法。谢谢。@R.Bemrose:大多数时候Windows也允许执行任何文件,因此对于读写来说是
0777
,对于只读来说是
0555
0666
1
0666