PHP memory_limit 64MB
Zdravím
Může mi někdo vysvětlit když mám na frehostingu php skript
<?php
file_put_contents('Jmeno.mp3', file_get_contents('http://icecast2.play.cz/croregion128.mp3', NULL, NULL, 0, 60 * 60 * 16 * 1024));"
?>
jestli se nemýlím tak je to záznam dlouhý 1 hodinu
dlouho mi to fungovalo mi to fungovalo ale už mi to delší dobu nefunguje obrátil jsem se na fórum tohoto frehostingu a tam mi bylo doporučeno abych upravil skript aby nepřesahoval memory_limit 64MB a proto že se v tom nevyznám tak se ptám tady díky
Je mozne, ze hosting upravil maximalnu velkost suboru na svojom php servri, takze nekaceptuje vacsie subory.
Daj si vypisat ake mas nastavenia php servera.
Ale když to upravím na menší tak se mi to taky nenahraje možná to upravuji nějak špatně
Možná ano.
Myslíš phpinfo() a co tam hledat nebo do jaké části toho výpisu se mám soustředit? díky
edit jedná se o webzdarma a teď zjišťuji že mě nevypisuje skript phpinfo.php (prázdná stránka) a na jejich fóru se to hemží problémy poslední dobou
Ano myslel som phpinfo, ked ti nevypisuje tak sa asi dalej nepohneme.
V tom skriptu máš doufám příkaz phpinfo()?
Samozřejmě
U některých uživatelů některé samozřejmé věci tak samozřejmé nejsou. Proto se radši ptám.
Tak další záhada když to zkusím ve firefox tak mě se ukáže prázdná stránka ale ve google chrome neexistuje stránka
Kámo to bude tím že ten " soubor" je nekonečný, je to trochu hack, jak udělat streamování , ale překvapivě je to deadly simple, ale právě problém s tím mají programy, kteří čekají soubor o konečné délce a stahují do konce.
otevřeš li to v přehrávači, tak začne hrát ihned.
Já jsem se asi špatně vyjádřil jedná se o ten skript kde je funkce phpinfo
*******************************************************************
dnes se mi ta hodina nahrála tento skript zafungoval
<?php
file_put_contents('Jmeno.mp3', file_get_contents('http://icecast2.play.cz/croregion128.mp3', NULL, NULL, 0, 60 * 60 * 16 * 1024));"
?>
poz.
a ještě jsem si smazal nechtíc v PSPad záložku FTP jak to napravit ? díky
Kdybys měl právo zvýšit memory_limit, pak jej prostě zvýšíš. Jenže je nemáš.
Zkus pohledat jiné možnosti:
https://www.google.com/search?client=firefox-b-d&ei=5iCIXq2WH8u8kwXl85WIDg&q=php+file_get_contents+memory+limit&oq=file_get_contents+php+memory_limit&gs_lcp=CgZwc3ktYWIQARgAMgYIABAIEB46BAgAEEc6CAgAEAgQBxAeSgwIFxIIMTEtMTJnNzVKCggYEgYxMS00ZzJQ3oIBWPSEAWDkpQFoAHAEeACAAU2IAZABkgEBMpgBAKABAqABAaoBB2d3cy13aXo&sclient=psy-ab
Muzes si vytvorit stream a postupne zapisovat do souboru treba po 20 MB.
PS: V PHP nedalam a nemam cas udelat fungujici priklad, takze prilozil alespon navod jak toho docilit. Nikdo jiny nevidel problem v tom, ze se do pameti nacita cely soubor...
https://www.php.net/manual/en/function.file-get-contents.php
Nevím jak je to možné že to mohlo fungovat, protože je to podle mě dost netradiční řešení. ten stream "kape rychlostí" 16 kB/s 128kbps. takže to vychází na hodinu stahování . (540MB asi) A to znamená, že skripty bude běžet hodinu a to je šílenost, povolit někde na hostingu takhle dlouhou dobu. běhu. Někde na vlastním serveru nebo na localhostu není problém....
Ostatně, tohle je dost zajímavá otázka, jak stahovat soubory, jejichž stažení trvá dlouho z podstaty (minuty až hodinu), na vzdáleném PHP serveru. Věděli byste. Napadá mě jen jako v dalším nezávislém procesu tuším exec,cmd,system (wget, s parametry url a maximální délky souboru nebo maximální délky běhu programu
Napadá má, že mohlo dojít ke změně na icecast2.cplay.cz
čili problém možná je sekundárně v max.limitu souboru () ale především v max_execution_time
teď se dívám na ukázku a nedivím se, že ti to shoří: ty to děláš nejhloupějším způsobem: stahuješ obsah souboru do proměnné a potom zapisuješ. takže rada hostéra maséra byla v pořádku, předělat to aby to nežralo celou paměť )
podívat se na php.net , klidně na tu funkci file_get contents a tam uvidíš související funkce pro práci se soubory a najít takovou, která rovnou zapíše, co přečte. A nebo to rozkouskovat (trochu zasterale pomocí while, kdy velikost bufferu přsáhne např 4MB, provést zápis v režimu append)
Pardon, 50MB asi