我想显示连接到运行Windows的系统的共享驱动器列表。有没有这方面的教程?
我在PHP中尝试了以下代码:
echo "<select id = 'drives'><option>Drives</option>";
for ($ii=66;$ii<92;$ii++)
{
$char = chr($ii);
if (opendir($char.":/"))
echo "<option>".$char."</option>";
}
echo "</select>";
答案 0 :(得分:1)
您必须在PHP中使用实验性Win32 API函数:
GetDriveType
。GetDriveType
来调用此功能。这取决于您的PHP版本。 (请参阅w32api-invoke-function文档底部的用户提供的说明!)DRIVE_REMOTE
。您可以在GetDriveType的MSDN文档中找到所需参数和其他返回值列表。答案 1 :(得分:1)
您可以通过PHP's COM API枚举Windows共享资源:
$wmi = new COM('WinMgmts:{impersonationLevel=impersonate}!root/cimv2');
$result = $wmi->ExecQuery('Select Path from Win32_Share where Type = 0');
foreach ($result as $share) {
echo $share->Path, PHP_EOL;
}
输出将列出计算机上的所有共享文件夹。类型0
是磁盘驱动器。
有关您可以查询的其他属性,请参阅Win32_Share
的MSDN文档。
注意:如果您正在寻找映射网络驱动器,请将查询更改为
Select ProviderName From Win32_LogicalDisk Where DriveType = 4
并将$share->Path
更改为$share->ProviderName
有关详细信息,请参阅此Technet Article。
使用COM的另一种方法是使用wmic
命令:
exec('wmic Share where Type=0 get Path', $shares);
print_r($shares);
等同于上面的第一个例子。有关WMIC
的详细信息,请参阅
答案 2 :(得分:0)
这可能有助于在c#下完成。 http://www.codeproject.com/KB/IP/networkshares.aspx 我无法直接在php下找到任何方法。
要在你的php中使用它,你可能需要将它作为一个dll并使用Win32 api函数从php调用它。