2013-03-21 2 views
0

Я хотел бы настроить скрипт, который читает mp3-файл, используя функцию readfile в PHP. Единственная проблема заключается в том, что я не хочу ждать, пока файл mp3 будет закончен, прежде чем я начну читать для конечного пользователя.Как читать файл() в PHP при создании файла (mp3)

+1

Я думаю, вы должны использовать другую функцию [stream_get_contents] (http://php.net/manual/en/function.stream-get-contents.php) –

+0

You может проверить каталог tmp. – powtac

ответ

0

Предполагая, что вы создаете кодировщик как отдельный процесс с PHP, вы должны использовать popen, чтобы сделать это, и поручить ему вытолкнуть кодировку по адресу stdout. Затем вы можете легко использовать fread на трубе, который представляет стандартный вывод кодировщика и передает все, что вы читаете в браузере.

Что-то вроде этого:

// Assuming that you have already sent the proper 
// HTTP headers to serve a download earlier 

$handle = popen('encoder --param --output-to-stdout', 'r'); 
while (!$feof($handle)) { 
    echo fread($handle, 2048); // or some other size, doesn't really matter 
} 
pclose($handle); 
+0

Кодирование выполняется с помощью python, и оно только возвращает имя файла и путь до начала кодирования. Есть ли способ сделать это без участия каких-либо выходных потоков? –

+0

@AdamCarpentieri: Я не могу ответить со 100-процентной уверенностью, но я не верю. Это будет зависеть от множества факторов, большинство из которых не находятся под вашим контролем. Попытайтесь «fopen» и «fread», если это сработает: отлично, если нет: вам не повезло. – Jon