我创建了一个脚本,用于检查位于Windows上网络文件夹中的某些文件夹(服务器和客户端都在Windows上)。
现在使用is_dir
时有时它会给出真实,有时它会为不同的文件夹提供错误。我对错误的感兴趣,因为我手动检查了URL并确实存在。
备注:
我正在研究的例子是: 我有一个存储在数据库中的客户列表。每个客户端都有一个网络文件夹(客户端)中的文件夹,由域控制器管理,每个客户端文件夹都有一个标准的文件夹结构:
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
。
答案 0 :(得分:0)
我猜WAMP正在作为服务运行。找出此服务启动的凭据(以管理员身份运行:services.msc)并确保该用户有权打开/读取相关目录。
使用网站时,请求列出或检查目录的登录用户帐户不是(即使服务器和浏览器在同一台计算机上),但是Web服务器正在搜索您。是他需要阅读的权利。