替代is_dir

时间:2015-04-06 15:03:49

标签: php

我创建了一个脚本,用于检查位于Windows上网络文件夹中的某些文件夹(服务器和客户端都在Windows上)。

现在使用is_dir时有时它会给出真实,有时它会为不同的文件夹提供错误。我对错误的感兴趣,因为我手动检查了URL并确实存在。

备注:

  1. 我使用绝对路径检查文件夹。
  2. 我正在使用PHP 5.4的Wamp Server。
  3. 我拥有访问网络上所有文件夹的完全权限。
  4. 更新

    我正在研究的例子是: 我有一个存储在数据库中的客户列表。每个客户端都有一个网络文件夹(客户端)中的文件夹,由域控制器管理,每个客户端文件夹都有一个标准的文件夹结构:

    Client 1
    |--Folder A
    |--Folder B
    |--Folder C
    
    Client 2
    |--Folder A
    |--Folder B
    |--Folder C
    

    代码遍历客户端并检查例如文件夹A 是否存在。

    // $clients is an array of names.
    foreach($clients as $client)
    {
        if(is_dir("\\\\MyDomain\\Clients\\{$client}\\Folder A"))
        {
            // Do something
        }
    }
    

    现在,以前的代码有时会工作,有时即使文件夹实际存在于Clients文件夹中也会返回false。

    对于Wamp权限,我尝试了两个有权访问 Clients 文件夹和每个Client子文件夹的用户,两者都给出了相同的结果。正如我之前所说,有时is_dir会返回true,有时会返回false

    enter image description here

1 个答案:

答案 0 :(得分:0)

我猜WAMP正在作为服务运行。找出此服务启动的凭据(以管理员身份运行:services.msc)并确保该用户有权打开/读取相关目录。

使用网站时,请求列出或检查目录的登录用户帐户不是(即使服务器和浏览器在同一台计算机上),但是Web服务器正在搜索您。是他需要阅读的权利。