PHP exec()没有返回所有命令输出 - OS X.

时间:2014-05-14 23:50:07

标签: php macos unix terminal

我正在使用PHP来查明是否有一块硬件连接到服务器。我在Mac OS X服务器上使用以下php命令。但并不是所有的结果都被归还,让我觉得他们被埋在一个我无法达到的阵列中。

在终端I中运行:

$ system_profiler SPUSBDataType

输出结果为:

   USB Hi-Speed Bus:

  Host Controller Location: Built-in USB
  Host Controller Driver: AppleUSBEHCI
  PCI Device ID: 0x1e2d 
  PCI Revision ID: 0x0004 
  PCI Vendor ID: 0x8086 
  Bus Number: 0x1a 

    Hub:

      Product ID: 0x0024
      Vendor ID: 0x8087  (Intel Corporation)
      Version:  0.00
      Speed: Up to 480 Mb/sec
      Location ID: 0x1a100000 / 2
      Current Available (mA): 500
      Current Required (mA): 0

        FaceTime HD Camera (Built-in):

          Product ID: 0x8510
          Vendor ID: 0x05ac  (Apple Inc.)
          Version: 80.25
          Serial Number: CC2C9C098NDN9KE0
          Speed: Up to 480 Mb/sec
          Manufacturer: Apple Inc.
          Location ID: 0x1a110000 / 3
          Current Available (mA): 500
          Current Required (mA): 500

当我在php中运行相同的命令时:

  exec ("system_profiler SPUSBDataType");

仅返回此内容:

  USB 3.0 SuperSpeed Bus:
  Host Controller Location: Built-in USB
  Host Controller Driver: AppleUSBXHCI
  PCI Device ID: 0x1e31
  PCI Revision ID: 0x0004
  PCI Vendor ID: 0x8086
  Bus Number: 0x0a

我的完整php如下:

  <?php
  $usbDevices = array();
  exec ("system_profiler SPUSBDataType", $usbDevices);
  foreach ($usbDevices as &$value) {
  echo $value .'<br />'; 
  }
  ?>

Print_r没有帮助,我已经四处寻找并且找不到太多帮助。有任何想法吗。感谢

更新1

这不是阵列问题,只是因为_www似乎无法捕获这些数据。即使我将输出传输到文件,我得到相同的结果。使用exec()我得到的结果非常有限,但是当我在终端中运行相同的命令时,我得到了完整的结果。

有关允许www用户访问此额外数据的想法吗?

0 个答案:

没有答案