Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-file_get_contents/fread连续输入流_Php_Http - Fatal编程技术网

php-file_get_contents/fread连续输入流

php-file_get_contents/fread连续输入流,php,http,Php,Http,对于我的项目,我必须从我的(php)网站与远程设备进行通信。我需要实现的命令之一发送一个连续的数据流,直到它接收到来自用户的更多输入 所以我的问题是,如果我使用file\u get\u contents(),这会是个问题吗?或者我应该使用fread()?我的输入是以字符串的形式进行的,fread()表示我应该使用文件\u get\u contents(),但是如果我使用文件\u get\u contents()我是否需要将其放入一个循环中,然后在数据包之间向我的设备发送数据,以阻止它发送数据?每

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

所以我的问题是,如果我使用
file\u get\u contents()
,这会是个问题吗?或者我应该使用
fread()
?我的输入是以字符串的形式进行的,
fread()
表示我应该使用
文件\u get\u contents()
,但是如果我使用
文件\u get\u contents()
我是否需要将其放入一个循环中,然后在数据包之间向我的设备发送数据,以阻止它发送数据?每次我调用
file\u get\u contents()
时,是否会有一个循环关闭我的连接并打开一个新的连接


我每天可以使用的数据量也受到限制,如果我使用
file\u get\u contents()
,它将块大小限制为8KB,即我当天数据的8%。

使用
fsockopen
fread
,等等。。。
file\u get\u contents
的目的是读取文件,而不是以您想要的方式发送/接收数据。

我会使用
fopen
流式上下文创建

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

这将允许您将流作为文件使用。让你可以使用任何你想用它做的东西。。。比如用
fgets
或其他什么工具逐行解析它。

无论如何,我现在必须使用
stream\u create\u context()
来处理文件内容。只是想澄清一下fopen的流是否位于后台(可能在它自己的线程上?)在我将数据从缓冲区中取出之前收集数据?至于线程,我不确定。你可以查一下来源,看看。数据收集在缓冲区中,等待您读取。我从未检查过让东西在缓冲区中累积是否会影响脚本使用的内存,主要是因为我必须有一些强有力的保证,确保处理数据的速度比数据流中的速度更快。