如何在PHP中读取STDIO流



我需要通过PHP读取输入流。

响应对象:

Serial Object
(
    [_device] => .com4
    [_windevice] => COM4
    [_dHandle] => Resource id #23
    [_dState] => 2
    [_buffer] => 
    [_os] => windows
    [autoflush] => 1
)

我需要从[_dHandle]=>资源id#23中提取信息。我提取了元数据

stream_get_meta_data($serial->_dHandle)

并发现以下内容:

Array
(
    [wrapper_type] => plainfile
    [stream_type] => STDIO
    [mode] => r+b
    [unread_bytes] => 0
    [seekable] => 1
    [uri] => .com4
    [timed_out] => 
    [blocked] => 1
    [eof] => 
)

请建议我如何从资源Id:#23 中提取数据

谢谢。

这取决于它是什么类型的资源。您可以使用函数

get_resource_type(),然后根据资源类型使用适当的函数读取它

如果是流,则可以使用fopen、fread等,如果是mysql,则使用mysql函数,如果是xml,则使用xml读取函数等。

从更改您的代码

这是错误的代码更改

$stdin = fopen('php://stdin', 'r');
$res = stream_get_contents($stdin, -1, 10);`

$stream = fopen($serial->_dHandle, 'r');
echo stream_get_contents($stream, -1, 10);
fclose($stream);

若$stream为false,那个么它就无法打开;若它有指针,那个么就意味着连接是打开的。如果stream_get_contents()未返回任何数据,则表示该数据不可用或尚未发送。

相关内容

  • 没有找到相关文章

最新更新