проблеа с fread+удалённый файл

H2
На сайте с 07.02.2012
Offline
21
363

Христос Воскрес уважаемы форумчане!

проблема в том, что когда я скачиваю файл (после обработки скрипта) размер его равен то 0 бит, то вообще размер "бесконечен" (он закачивается пока место на жёстком диске не кончится)...

помогите пожалуйста, заранее благодарю

сам скрипт:


<?

if($_GET["id"] == '') {
} else {
include('/home2/http/public_html/simple_html_dom.php');
$mp3_id = $_GET["id"];
$content = file_get_contents('http://site.ru/' .$mp3_id. '.html');
$html = str_get_html($content);
foreach($html->find('input') as $sourcecod);
foreach($html->find('div.menu') as $sourcecod1);
preg_match('#<a href="([^"]+)">title</a>([^"]+)<br/>#U',$sourcecod1,$razmer1);
$link_add1 = $sourcecod->value; //получаю ссылку на файл
$link_add2 = substr($link_add1, 23, 500); //обрезаю название файла
$Headers = @get_headers($link_add1);
$dlina_add3 = strlen($Headers[8]); //получаю размер файла (в байтах)
$dlina_add4 = substr($Headers[8], 16)/1024; //перевожу размер в кбайты

$real_path = "http://site.ru/files/" .$link_add2; // ссылка к файлу на удалённом хосте
$content_type = "application/mp3";
$file_name = $link_add2;
header("Content-type: $content_type");
header("Content-Disposition: attachment; filename=$file_name");
$handle = fopen($real_path, "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, $dlina_add4); // не знаю почему, но мне кажется проблема в этой строке
echo $contents;
}
fclose($handle);
}
?>
H2
На сайте с 07.02.2012
Offline
21
#1

Вобщем решил проблему таким образом:


<?

if($_GET["id"] == '') {
} else {
include('/home2/http/public_html/simple_html_dom.php');
$mp3_id = $_GET["id"];
$content = file_get_contents('http://site.ru/' .$mp3_id. '.html');
$html = str_get_html($content);
foreach($html->find('input') as $sourcecod);
foreach($html->find('div.menu') as $sourcecod1);
preg_match('#<a href="([^"]+)">title</a>([^"]+)<br/>#U',$sourcecod1,$razmer1);
$link_add1 = $sourcecod->value; //получаю ссылку на файл
$link_add2 = substr($link_add1, 23, 500); //обрезаю название файла
$Headers = @get_headers($link_add1);
$dlina_add3 = strlen($Headers[8]); //получаю размер файла (в байтах)
$dlina_add4 = substr($Headers[8], 16)/1024; //перевожу размер в кбайты

$real_path = "http://site.ru/files/" .$link_add2; // ссылка к файлу на удалённом хосте
$content_type = "application/mp3";
$file_name = $link_add2;
header("Content-type: $content_type");
header("Content-Disposition: attachment; filename=$file_name");
$contente = file_get_contents($link_add1);
echo $contente;
}
?>

однако если есть другие способы решения проблемы, хотелось бы узнать =)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий