【问题标题】:PHP: read part of file with fread() from http resourcePHP:使用 fread() 从 http 资源读取文件的一部分
【发布时间】:2015-02-06 10:49:31
【问题描述】:

我有以下 PHP 代码:

$fp=fopen("http://myurl.com/very_big_file.txt",'r');
$feed=fread($fp,16);

它工作正常,但我有一些疑问。它真的只读取前 16 个字节而不下载整个文件吗?

【问题讨论】:

  • 这应该不会太难测试吧?只需将它指向一个 700MB 的 ISO,请求 16 个字节,看看它是否需要超过一点时间才能运行。
  • 据我所知,它确实下载了整个文件

标签: php fread


【解决方案1】:

字符串 fread ( 资源 $handle , int $length )

fread() 从句柄引用的文件指针中读取最多 length 个字节。只要满足以下条件之一,就会停止读取:

  1. 已读取长度字节
  2. 已到达 EOF(文件结尾)
  3. 数据包可用或发生套接字超时(对于网络流)
  4. 如果流被读取缓冲并且它不代表普通文件,则最多读取一次最多等于块大小(通常为 8192)的字节数;根据之前缓存的数据,返回数据的大小可能会大于块大小。

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 2011-01-29
    • 1970-01-01
    相关资源
    最近更新 更多