【问题标题】:PHP detect (or remove) current drive letter?PHP检测(或删除)当前驱动器号?
【发布时间】:2013-04-29 07:26:15
【问题描述】:

我正在尝试为 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 使用的驱动器号并根据它检测到的内容更改我的代码部分?

【问题讨论】:

  • 请更改问题标题。我认为,它不是检测驱动器号,而是删除驱动器号。
  • Zulkhaery Basrul,你为什么这么认为? Jason 想要检测驱动器号,这样他就不必对其进行硬编码。

标签: php windows


【解决方案1】:

您也许可以从__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__);
    

    【讨论】:

      猜你喜欢
      • 2010-12-18
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 2018-06-25
      • 2010-10-09
      • 2015-11-21
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多