PHP:如何在服务器驱动器中创建目录

PHP:如何在服务器驱动器中创建目录,php,Php,我正在做一个项目,我正在创建一个代理机构。创建代理时,我有一个下拉列表来选择驱动器。在该驱动器中,将创建一个带有机构名称的文件夹,其中将存储所有导出的数据。我可以通过执行几个shell命令来获取服务器中的所有驱动器。我正在尝试使用以下代码创建文件夹: $agency = 'BookStore'; $documentLocation = $val['drive'] . '/agency/documents/document-' . $agency; if (!is_dir($documentLo

我正在做一个项目,我正在创建一个代理机构。创建代理时,我有一个下拉列表来选择驱动器。在该驱动器中,将创建一个带有机构名称的文件夹,其中将存储所有导出的数据。我可以通过执行几个shell命令来获取服务器中的所有驱动器。我正在尝试使用以下代码创建文件夹:

$agency = 'BookStore';
$documentLocation = $val['drive'] . '/agency/documents/document-' . $agency;

if (!is_dir($documentLocation)) {
    var_dump(mkdir($documentLocation, 0777, true));
}

其中$val['drive']是驱动器路径。但是它会在我的项目中创建文件夹,我想在指定的驱动器中创建文件夹。

问题在于
$val['drive']
。如果您的操作系统是Windows,您仍然需要一些额外的格式,例如添加冒号:前斜杠在Windows中不再像在Unix中那样是个问题

 <?php

     $agency           = 'BookStore';
     $isWindows        = true; //<== A FUNCTION THAT CHECKS IF IT'S A WINDOWS OS
     $location         = '/agency/documents/document-' . $agency;
     //IF IT'S WINDOWS OS,WE JUST ADD A COLON (:) AFTER THE DRIVE NAME
     $documentLocation = (isWindows)?$val['drive'] .":" . $location : $val['drive']. $location;


    if (!is_dir($documentLocation)) {
        var_dump(mkdir($documentLocation, 0777, true));
    }

$documentLocation
的确切值是多少?您能给我们举一个它产生的
$documentLocation
的例子吗?如果
$val['drive']
类似于“C”(例如,如果您在Windows上),则路径将无效(缺少冒号“C:”),请不要忘记:
777
是邪恶的。永远不要使用它。使用尽可能少的许可配置。如果不是Windows,则根本不需要驱动器号…@deceze确切地说…,但可能
$val['drive']
指向Linux或OSX上已装入卷的
地址,但不再指向Windows操作系统的C、D、E、F…和Z驱动器。。。。。类似于Mac中的
“/Volumes/Macintosh\HD”
或Mac中的
/home/media/user/ExternalHDD
Linunx@Poiz是的,它是一台unix服务器。所以驱动器是这样的:/dev/sdb1、/dev/sdb2