【问题标题】:PHP mkdir(), chmod() and WindowsPHP mkdir()、chmod() 和 Windows
【发布时间】:2010-10-18 21:37:32
【问题描述】:

我正在使用 PHP 函数 mkdir($path, 0777) 在 Apache 服务器(在 Windows 上运行)上创建一个新目录。

当我创建它并查看文件夹时,Windows 已将目录设置为只读。有没有办法在不使用 exec() 到 cacls.exe 的情况下改变它? PHP 文档指出 chmod() 在 Windows 上不起作用,但没有说明替换方法。

Google 似乎在这方面有点帮不上忙。

编辑:在与我的两位教育机构的管理员交谈了几分钟后,似乎他们的学生测试 PHP 服务器正在使用 USB 驱动器运行。我有一种感觉,这将与它有关拍脑袋

【问题讨论】:

  • 请注意,chmod 在 windows 上不起作用,因为 windows 使用与 linux 不同的权限方法。
  • 是的,我正在寻找一种在 windows 上复制 chmod() 功能的方法 :)

标签: php windows directory chmod


【解决方案1】:

我在 php 和 cakephp for windows 中使用 mkdir(" my dir name ",0777,true); 它对我来说很好用。

【讨论】:

  • 0777 在 Windows 中是标准的,只是无法分配不同的东西。
【解决方案2】:

以下内容:

<?php
mkdir( "foo" )
?>

(注意没有指定模式)在 Win2K 上适用于我 - 它创建一个没有设置属性的文件夹。

编辑: 刚刚想到 - 可能与权限有关吗?尝试从命令行运行上面的代码,看看会发生什么:

C:> c:\php\pgp.exe
    <?php
    mkdir( "foo" )
    ?>
    ^Z

【讨论】:

  • 我使用的是 WinXP,但它对我不起作用。它创建了一个名为 foo 的目录,但只读标签被打勾(也被涂成灰色!)
  • 另外,我正在 Apache/2.2.0 (Win32) 服务器上测试 PHP 版本 5.2.4。不幸的是,我无法更改其中任何一个。
  • 我正在使用 5.2.3,对不起,我不能再帮忙了。我做了一些谷歌搜索,但找不到提到的问题 - chmod() 的问题是的,但不是 mkdir()
  • 目录照常创建,但只读标签显示为灰色并且仍然打勾。我可以轻松地取消它们,但这是为了在用户注册上创建一个文件夹,所以我会整天都在那里!
【解决方案3】:

根据 PHP 文档,mode 参数在 Windows 上完全被忽略(但默认为 0777,因此您不必指定它)。尝试根本不指定模式,看看会发生什么。也许它搞砸了?

【讨论】:

  • 它并没有比现在更糟,所以行为是相同的,有或没有参数。
猜你喜欢
  • 2017-06-18
  • 2011-03-08
  • 2011-04-15
  • 2011-01-04
  • 2013-11-30
  • 2020-07-12
  • 2011-05-22
  • 2012-01-10
  • 2019-08-04
相关资源
最近更新 更多