php - file_get_contents / fread连续输入流

时间:2012-09-06 22:06:58

标签: php http

对于我的项目,我必须从我的(php)网站与远程设备进行通信。我需要实现的命令之一发送连续的数据流,直到它从用户接收更多输入。

所以,如果我使用file_get_contents(),我的问题是这会有问题吗?或者我应该使用fread()?我的输入是一个字符串的形式,fread()说我应该使用file_get_contents(),但是如果我使用file_get_contents(),我需要将它放在循环中然后在数据包之间将数据发送到我的设备停止发送数据?每次拨打file_get_contents()时,循环是否会关闭我的连接并打开一个新连接?

我也受限于我每天可以使用的数据量,如果我使用file_get_contents()并且它限制了块的8KB块大小,那是当天数据的8%。

2 个答案:

答案 0 :(得分:3)

使用fsockopenfread等... file_get_contents的目的是读取文件,而不是按照您想要的方式发送/接收数据。

答案 1 :(得分:0)

我会使用fopen并使用stream_context_create

$options = array(
    'http' => array(
        'method' => 'GET',
    ),
);
$context = stream_create_context($options);
$fh = fopen($your_url, 'r', false, $context);

这将允许您将流作为文件使用。让您访问任何您想要使用它的东西......比如用fgets或其他任何东西逐行解析。