如何在fread函数中找到最佳传递长度

时间:2011-10-01 19:03:38

标签: php fread

文件大小未知的文件(标题中未包含content-length) 我试图使用它将它们复制到我的服务器:

$file='';
do{
    $line = @fread ( $fp, 16384 );
    $file .= $line;
}while ( strlen($line)> 0 );

该文件始终是pdf内容。 问题是有时它获取文件(153 Kb),有时它获取文件的一部分(3kb),有时它会挂起,我的计算机的CPU使用100%!!

你觉得怎么办? 任何这个错误的长度(16384)?

=============== edit ================ 更多信息

$request = $method . " " . $url . " HTTP/1.1" . $nn . "Host: " . $host . $nn . "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" . $nn . "Accept: */*" . $nn . "Accept-Language: en-us;q=0.7,en;q=0.3" . $nn . "Accept-Charset: utf-8,windows-1251;q=0.7,*;q=0.7" . $nn . "Pragma: no-cache" . $nn . "Cache-Control: no-cache" . $nn . ($Resume ["use"] === TRUE ? "Range: bytes=" . $Resume ["from"] . "-" . $nn : "") . $http_auth . $proxyauth . $referer .($XMLRequest ? "X-Requested-With: XMLHttpRequest" . $nn : ""). $cookies . "Connection: Close" . $nn . $content_tl . $nn . $postdata;
$fp = @fsockopen($Host , $Port, $errno, $errstr, 15);
fputs ( $fp, $request );
fflush ( $fp );
$file='';
    do{
        $line = @fread ( $fp, 16384 );
        $file .= $line;
    }while ( strlen($line)> 0 );

0 个答案:

没有答案