Определить букву диска Windows с помощью PHP

Я немного посмотрел, но не нашел ответа. Можно ли узнать системный диск/папку сервера без каких-либо взломов?

В ответе, который вы предоставили, обсуждается только то, как определить текущий диск, а мне нужно узнать системный диск, на котором установлена ​​ОС.


person Александр Пушки&    schedule 20.01.2016    source источник
comment
Я думаю, если у вас есть класс COM, вы сможете это сделать. Не уверен, есть ли команда для использования с exec(). Это могут быть единственные варианты. Нет нативных PHP-команд (вопрос в том, зачем их добавлять). Google может помочь больше с командами cli, связанными с Windows.   -  person Charlotte Dunois    schedule 20.01.2016
comment
@CharlotteDunois, какой класс COM? Кроме того, на стороне сервера у нас нет ничего, кроме обычного окружения php, иногда ограниченного выполнением команд. Я думал, что должны быть какие-то функции, чтобы добиться цели.   -  person Александр Пушки&    schedule 20.01.2016
comment
@RiggsFolly Возможный дубликат, но не уверен на 100%, поскольку корневой веб-сайт может находиться на другом диске, а не на диске ОС.   -  person Charlotte Dunois    schedule 20.01.2016
comment
@CharlotteDunois Вы правы, я не понял бит system при первом чтении, близко удален   -  person RiggsFolly    schedule 20.01.2016
comment
Попробуйте взглянуть на $_SERVER["SystemRoot"], хотя я не уверен, что это даст в среде UNIX.   -  person RiggsFolly    schedule 20.01.2016
comment
@CharlotteDunois, интересная информация. Возможно, я воспользуюсь им как планом Б, если больше ничего не будет найдено.   -  person Александр Пушки&    schedule 20.01.2016


Ответы (1)


Для Windows:

echo GetEnv("SystemDrive");
// C:

В Unix/Linux эта переменная не существует, но там системный «диск» предсказуемо просто /.

если вам нужен фактический раздел, вы можете попытаться получить его с помощью этого:

exec( 'mount |grep " / " | cut -d " " -f 1' );
// /dev/sda1
person Gerald Schneider    schedule 20.01.2016
comment
Спасибо за совет по линуксу. Кроме того, еще один вопрос - с помощью GetEnv или $_SERVER я могу узнать имя ОС? - person Александр Пушки&; 20.01.2016
comment
Вы можете увидеть все доступные переменные среды с помощью phpinfo(), $_SERVER можно проверить, как и все переменные с var_dump(). - person Gerald Schneider; 20.01.2016