PHP обнаруживает (или удаляет) текущую букву диска? - PullRequest
4 голосов
/ 22 января 2012

Я пытаюсь найти способ для PHP определить букву диска USB моего приложения, но мне не повезло.

Я делаю рабочий стол, который идет рука об руку с приложениями, которые я установил с portableapps.com. Основной рабочий стол и все приложения находятся на USB-накопителе; файлы PHP хранятся в USB-версии xampp.

В настоящее время у меня настроен условный оператор, в котором, если бы мне нужно было щелкнуть значок на рабочем столе для одного из переносимых приложений, он добавил бы «? App = APPNAME», который затем был бы поднят условным условием, и откройте приложение.

<?php 
$app = $_GET['app'];

if ($app == 'pidgin') {
 $addr = "E:/PortableApps/PidginPortable/PidginPortable.exe";
 exec ($addr,$output, $return);
} 
?>

Я хочу иметь возможность подключить этот диск к любому компьютеру и не сталкиваться с проблемами при открытии приложений, поэтому есть ли способ удалить E: / в расположении файла и при этом оставить его открытым или хотя бы способ определить букву диска, которую использует USB, и изменить эту часть моего кода в зависимости от того, что он обнаружил?

Ответы [ 2 ]

10 голосов
/ 22 января 2012

Вы можете разобрать его по магической константе __FILE__ .У меня нет компьютера с Windows, но я думаю, это будет первый персонаж.Так что это может работать:

$drive = substr(__FILE__, 0, 1);
2 голосов
/ 29 апреля 2013
// Returns null if unable to determine drive letter (such as on a *nix box)
function driveLetter($path)
{
    return (preg_match('/^[A-Z]:/i', $path = realpath($path))) ? $path[0] : null;
}

// To find drive letter of current file
echo "Drive letter is: ", driveLetter(__FILE__);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...