PHP exec()未返回所有命令输出-OS X
我使用PHP来确定服务器上是否连接了一块硬件。我在MacOSX服务器上使用以下php命令。但并不是所有的结果都会被返回,这让我觉得它们就像是埋在了一个我找不到的数组中 在终端我运行:PHP exec()未返回所有命令输出-OS X,php,macos,unix,terminal,Php,Macos,Unix,Terminal,我使用PHP来确定服务器上是否连接了一块硬件。我在MacOSX服务器上使用以下php命令。但并不是所有的结果都会被返回,这让我觉得它们就像是埋在了一个我找不到的数组中 在终端我运行: $ system_profiler SPUSBDataType 输出为: USB Hi-Speed Bus: Host Controller Location: Built-in USB Host Controller Driver: AppleUSBEHCI PCI Device ID: 0
$ 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 />';
}
?>
打印没有帮助,我到处搜索,找不到太多帮助。任何想法。谢谢
更新1
这不是数组问题,只是www似乎无法捕获这些数据。即使将输出通过管道传输到文件,也会得到相同的结果。使用exec我得到的结果非常有限,但是当我在终端中运行相同的命令时,我得到了完整的结果
关于允许www用户访问这些额外数据有什么想法吗?你确定所有这些都将被标准输出吗?exec默认情况下不会返回stderr输出。@Dagon同样,仍然不工作:random shot:var_dumppassthrusystem_profiler SPUSBDataType'@Dagon nope var_dumppassthrusystem_profiler SPUSBDataType;返回完全相同的值,但带有一个附加的nullsugger选项pipe to file,read file passthrusystem_profiler SPUSBDataType>file.txt';假设这对mac有效?