Я хотел бы настроить скрипт, который читает mp3-файл, используя функцию readfile в PHP. Единственная проблема заключается в том, что я не хочу ждать, пока файл mp3 будет закончен, прежде чем я начну читать для конечного пользователя.Как читать файл() в PHP при создании файла (mp3)
ответ
Предполагая, что вы создаете кодировщик как отдельный процесс с 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);
Кодирование выполняется с помощью python, и оно только возвращает имя файла и путь до начала кодирования. Есть ли способ сделать это без участия каких-либо выходных потоков? –
@AdamCarpentieri: Я не могу ответить со 100-процентной уверенностью, но я не верю. Это будет зависеть от множества факторов, большинство из которых не находятся под вашим контролем. Попытайтесь «fopen» и «fread», если это сработает: отлично, если нет: вам не повезло. – Jon
Я думаю, вы должны использовать другую функцию [stream_get_contents] (http://php.net/manual/en/function.stream-get-contents.php) –
You может проверить каталог tmp. – powtac