Kullanıcı iptal bayt PHP Readfile () numarası

0 Cevap

Ben uzak bir kaynaktan (biter asla bir dosya yani) bir canlı video akışı için bir PHP komut dosyası kullanıyorum. Çıkışı bir web tarayıcı değil VLC, görülüyor. Ben aktarılan bayt sayısını sayısını tutmak gerekir. İşte benim kod:

<?php

ignore_user_abort(true);
$stream = $_GET['stream'];

if($stream == "vid1")
{
    $count = readfile('http://127.0.0.1:8080/');
    logThis($count);
}

function logThis($c)
{
    $myFile = "bytecount.txt";
    $handle = fopen($myFile,'a');
    fwrite($handle,"Count: " . $c . "\n");
    fclose($handle);
}

?>

Ancak kullanıcı durdurma düğmesine bastığında, logThis () I ignore_user_abort (true) koyduk olsa bile, asla denir görünür;

Herhangi bir yanlış yapıyorum üzerinde fikir?

Teşekkürler

Update2: Ben müşteri gitti sonra bile sonsuza kadar dosya indirmek için devam edeceğini olarak ignore_user_abort (true) kullanılarak shoudn't olarak benim kod değiştirdim. Ben bu benim kodu değişti ettik:

<?php

$count = 0;

function bye()
{
    //Create Dummy File with the filename of equal to count
}

register_shutdown_function('bye');
set_time_limit(0);
ignore_user_abort(false);

$stream = $_GET['stream'];

if($stream == "vid1")
{
    $GLOBALS['count'] = readfile('http://127.0.0.1:8080/');
    exit();
}

>

Benim sorun şimdi komut (yani kullanıcı presler durdurma) iptal edildiğinde, readfile (yani sayısı 0 olarak kalır) bir değer dönmeyecektir olmasıdır. Herhangi bunu düzeltmek için nasıl bir fikir?

Teşekkürler

0 Cevap