• 27-06-2010, 13:41:25
    #1
    Eposta Aktivasyonu Gerekmekte
    Merhaba arkadaşlar, yine ben php konusunda bir yerde takıldım
    php.net adresinde

    <?php 
    
    // outputs eg  somefile.txt: 1024 bytes 
    
    $filename = 'somefile.txt' ; 
    echo $filename . ': ' . filesize ( $filename ) . ' bytes' ; 
    
    ?>
    Kodunu buldum. Anladığım kadarıyla $filename = (dosyam.mp3) ve echo ile de bunu yansıtıyorum. Fakat bir de ben buna yaklaşık download süresini ekleyebilir miyim? Yani mantığı nedir?
    Yavaş internet için => 50 saniye
    Hızlı internet için => 10 saniye

    Yani hızlı internet, yavaş internetin 5 katı olacak ama dosyam.mp3'e göre bunu ben nasıl yapabilirim? Kodunu verirseniz ben uğraşır yaparım
    şimdiden ilgi ve alakanıza teşekkür eder saygılarımı sunarım
  • 27-06-2010, 13:47:37
    #2
    Google'de ararken şu kodu buldum...

    //yaklaşık 10Kbyte/sn download limiti için
     
    $packet_interval = 1; # 1=> yavas, 0.5 => orta, 0.3 => hızlı
    $packet_size = (10 * 1042); # 10 => yavas, 40=> orta, 90=> hızlı
    $file = './dosya.mp3'; # dosyanın tam adresi olmalı
    $fileSize = filesize($file);
     
    //örnek mp3 olduğu için mp3 için gerekli headerları gönderelim
    header("Content-Type: audio/mpeg");
     
    // Dosya adını özellikle değiştiriyorum ki dosya adı ve adresi öğrenilemesin
    header("Content-Disposition: attachment; filename="downloaddosya.mp3""); 
    header("Content-Length: " . $fileSize);
     
    $fh = fopen($file, 'rb');
    while(!feof($fh)) {
     
    # başlangıç zamanı
    list($usec, $sec) = explode(' ', microtime());
    $time_start = ((float)$usec + (float)$sec);
     
    # gönderilecek paket büyüklüğü
    print(fread($fh, $packet_size));
     
    # bitiş zamanı
    list($usec, $sec) = explode(' ', microtime());
    $time_stop = ((float)$usec + (float)$sec);
     
    # gönderilecek paket büyüklüğü aralıktan büyükse scripti bekletelim
    $time_difference = $time_stop - $time_start;
    if($time_difference < (float)$packet_interval){
    usleep((float)$packet_interval * 1000000 - (float)$time_difference * 1000000);
    }
     
    }
    Umarım işine yarar.
  • 27-06-2010, 14:08:49
    #3
    Eposta Aktivasyonu Gerekmekte
    Selamlar tasmanian, verdiğin cevap için teşekkür ederim. kodu test ettim ve satır 12'de hata var dedi. yani header olan kısımda. bende 2 header'ı da sildim ve karman çorman bir sayfa elde ettim

    benim verdiğin koddan işime yarayanı ayıklamam gerekiyor.
    ayıklayacak kadarda maalesef bilgim yok.
    direk o mp3 boyutu gibi bir kodu var mı download süresi için?
    teşekkürler.
  • 27-06-2010, 14:13:14
    #4
    İstediğiniz;
    Dosyanın boyutu ve tahmini indirme süresi mi ?
  • 27-06-2010, 14:26:19
    #5
    Eposta Aktivasyonu Gerekmekte
    Evet aynen öyle.
    Dosya boyutunu aşağıdaki verdiğim kod ile alıyorum.
    Fakat 2 echo lazım bana
    1.) yavaş internette şu saniye veya dakika
    2.) hızlı internette şu saniye veya dakika
  • 27-06-2010, 14:28:22
    #6
    http://95.173.182.48/hebe/ Bu işini görür mü ?
    Görürse eğer: http://95.173.182.48/hebe/Dosya.zip
  • 27-06-2010, 14:43:33
    #7
    Eposta Aktivasyonu Gerekmekte
    tasmanian sana nasıl teşekkür edeceğimi bilmiyorum.
    çok teşekkür ederim, çok saol.
  • 27-06-2010, 14:56:29
    #8
    İşine yaradığına sevindim, Kolay gelsin. Teşekkür etmen yeterli