Autor Zpráva
Janica
Profil *
Zdravím,
ráda bych si stahla 10 minut streamu :D
máme live stream... řekněme například známé klfree http://81.201.52.159:8001/

ráda bych si vytvořila jistý druh nahrávání kde by se pravdpodobně cronem
spustil script který by tahal stream (pravděpodobně readfile nebo file_get_contents)
a následně by se kosil do souboru...

vše tady je v klidu ale zasekla jsem se u přerušení...
jelikož link pracuje jako stream tedy nekonečný soubor jak ho po 10 minutách zabít?

pracovala jsem s myšlenkou timeout ale nic funkčního se mi nepovedlo...
děkuji za nasměrování :)
Jan Tvrdík
Profil
Janica:
Nestačí použít fopen a fread?
Janica
Profil *
ukládání do souboru by neměl být problém mě jde o to jak ukončit ukládání po 10minutách...
Jan Tvrdík
Profil
Janica:
Budeš to číst postupně, třeba po 1MB a budeš průběžně kontrolovat uběhlý čas.
Janica
Profil *
aha tak... no to nepůjde fopen otvýrá celý soubor... ne jen ten 1MB takže se snaží stahnout ale jelikož jde o nekonečný stream tak stahuje a stahuje....
teoreticky mě napadá pouze to, napsat funkci na zabití funkce po dosažení času který by musel být určen před tím, než se vůbec začne stahovat... ale jak jsem psala, nepodařilo se mi nic funkčního :)
Jan Tvrdík
Profil
Janica:
no to nepůjde fopen otvýrá celý soubor
Nesmysl, přesně tohle fopen nedělá. Pro kopírování můžeš použít funkci stream_copy_to_stream.

$readStream = fopen('http://81.201.52.159:8001/', 'r');
$writeStream = fopen('out.bin', 'w');

$limit = 12; // limit  v sekundách
$end = time() + $limit;

do {
    stream_copy_to_stream($readStream, $writeStream, 1024 * 1024);
} while ($end > time());
Janica
Profil *
má chyba :D díky....

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: