2012-01-22 19 views
4

我想找到一種方法來檢測我的應用程序的USB驅動器盤符,但我沒有任何運氣。PHP檢測(或刪除)當前驅動器號?

我正在製作一個與我從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使用的驅動器號,並根據檢測到的內容更改我的代碼部分。

+0

請更改問題稱號。我認爲,它不是關於檢測驅動器盤符,而是刪除驅動器盤符。 –

+0

Zulkhaery Basrul,你爲什麼這麼想? Jason想要*檢測*盤符,所以他不必對其進行硬編碼。 –

回答

9

您可能需要從__FILE__magic constant解析它。我沒有任何Windows電腦,但我想這將是第一個字符。所以這可能工作:

$drive = substr(__FILE__, 0, 1); 
2
// 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__);