PHP检测(或删除)当前的驱动器号?

时间:2012-01-22 17:42:15

标签: php windows

我正试图找到一种方法让PHP检测我的应用程序所在USB的驱动器号,但我没有运气。

我正在制作一个与我从portableapps.com安装的应用程序齐头并进的桌面。主桌面和所有应用程序都在USB驱动器上; PHP文件存储在xampp的USB版本中。

目前我有一个条件语句设置,如果我要点击其中一个便携式应用程序的桌面图标,它会附加“?app = APPNAME”,然后由条件接收并打开应用程序。

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

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

我希望能够将此驱动器插入任何计算机,而不会在打开应用程序时遇到问题,因此有没有办法删除文件位置中的E:/并仍然打开它们或者至少有一种方法可以检测USB正在使用的驱动器号,并根据检测到的内容更改我的代码部分?

2 个答案:

答案 0 :(得分:10)

您可以从__FILE__ magic constant解析它。我没有任何Windows电脑,但我想这将是第一个角色。所以这可行:

$drive = substr(__FILE__, 0, 1);

答案 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__);