【问题标题】:Find platform-specific null devices in PHP?在 PHP 中查找特定于平台的空设备?
【发布时间】:2016-10-11 19:16:25
【问题描述】:

是否有类似 Python 的 os.path.devnull 指向 PHP(最好是 v5.6)中给定平台的正确空设备?

我在手册中没有看到任何明显的内容,phpinfo()$_SERVER$_ENV,谷歌搜索主要导致 python 引用。我不相信没有这样的事情。我错过了什么?

【问题讨论】:

  • 没有这种东西
  • 取决于您的意思以及您打算如何使用它。您只想执行某些操作并丢弃返回?什么以及如何?

标签: php null multiplatform


【解决方案1】:

PHP 没有内置这样的东西。但是,阅读PythonPHP 的源代码会发现一个非常简单的解决方案:

function devnull()
{
    $osToNull = [
        // Windows
        'WIN' => 'nul',

        // OS2, eComStation
        'OS2' => 'nul',

        // RISC OS
        'RISC' => 'null:',

        // AmigaOS
        'AMIGA' => 'nil:',

        // OpenVMS
        'VMS' => 'nl:',

        // Unix, Netware
        // returned if no other OS matches
        'default' => '/dev/null',
    ];

    foreach ($osToNull as $os => $nullDevice) {
        if (strtoupper(substr(PHP_OS, 0, strlen($os))) === $os) {
            return $nullDevice;
        }
    }

    return $osToNull['default'];
}

由于我无法访问以上所有操作系统,如果我错了,请纠正我。

【讨论】:

  • 很遗憾听到没有内置解决方案,但因为我现在只需要这个,标记为最佳答案。我添加了我需要的系统。
  • @CyprianGuerra 为了完整起见,您介意共享系统及其空设备位置吗?
  • 是的,我在大约 30 分钟前添加了一个编辑。审核通过后才会出现。 'Amiga' => 'nil:', 'VMS' => 'nl:'
  • @cprn 啊,我从来没有注意到,我更新了答案以包含您的评论。
猜你喜欢
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 2013-10-24
  • 1970-01-01
相关资源
最近更新 更多