是否可以使用file_get_contents()
下载部分数据。例如,如果我正在下载一个2MB的文本文件,而我只想要前5个字节,这可能吗?
答案 0 :(得分:2)
不确定。附加参数允许您指定文件的一部分。请参见手册页上的示例#3:
<?php
// Read 14 characters starting from the 21st character
$section = file_get_contents('./people.txt', NULL, NULL, 20, 14);
var_dump($section);
?>
这里,最后两个参数限制了返回到感兴趣部分的数据量。
注意: offset 参数对于远程文件有点不可预测,如手册页中所述:
远程文件不支持寻找(偏移)。尝试搜索非本地文件可能会使用较小的偏移量,但这是不可预测的,因为它适用于缓冲流。
答案 1 :(得分:1)
function ranger($url, $bytes){
$headers = array(
"Range: bytes=0-".$bytes
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
return curl_exec($curl);
}
$url = "http://example.com/textfile.txt";
$raw = ranger($url, 5);
echo $raw;
请记住,服务器必须支持Range标头。使用fgc,我认为它是impossibru,即使它是,你应该使用cURL。