Autor Zpráva
lukame
Profil *
Zdravím, máte někdo zkušenosti s fcí: file_put_contents?
Na lokále funguje dokonale, ale na hostingu (wedos) mám problém s dobou zápisu souboru (xml) na ftp. Klidně i hodinu. A pak se samotnou adresou zápisu. Chci to do adresáře from_web... Tak zadám adresu : from_web/1.xml a nic.....? Adresář má v CHMOD 777.
file_put_contents($file, $xml,FILE_APPEND | LOCK_EX);
Díky
Davex
Profil
lukame:
S čím máš tedy problém? Že se soubor neuloží nebo že ukládání trvá dlouho?

Cestu k souboru měj raději "./from_web/1.xml" nebo __DIR__ . "/from_web/1.xml".
lukame
Profil *
No největší problém je doba ukládání. Pohybuje se to od 15 min do 1 hodiny..... To nejde. Ta cesta ./from_web/*.* nefunguje. Zkusím DIR.


hm.. nefunguje: Warning: file_put_contents(__DIR__./from_web/6.xml): failed to open stream: No such file or directory
Davex
Profil
lukame:
Neopsal jsi to špatně? __DIR__ je konstanta a nepatří mezi uvozovky.
pcmanik
Profil
lukame:
Koľko dát sa snažíš do toho súboru zapísať? To je dosť dôležitá informácia. Jedná sa o kB, MB, GB?
lukame
Profil *
Vůbec nezáleží na objemu. Zatím jen testuji, takže teď 300B.
mckay
Profil
lukame:
Zatím jen testuji, takže teď 300B.
To je poměrně zvláštní. Podle čeho usuzujete, že ukládání trvá takovou dobu? Jakým způsobem tuto dobu měříte?

A v poslední řadě - jak vůbec vlastně docílíte toho, že na Wedosu můžete nechat skript běžet takto dlouho?
lukame
Profil *
Soudím podle toho, že se soubor v zadaném adresáři objeví až za takovou dobu. Takže neměřím. No to je právě má otázka, jak se to mlže tak dlouho zpracovávat. Testuji, jestli se funkce vůbec provede a provede se vždy v pořádku. Ale soubor se mi objeví až až až


Možná mám problém v zadávané cestě k uložení. php funci volám z rootu a soubor ukládám do from_web. Nicméně i když soubor ukládám do root, tak daba ukládání je stále stejně strašná.
Keeehi
Profil
A to jestli tam je, nebo ne kontroluješ jak? Připojíš se na FTP a koukáš, jestli tam je nebo ne? FTP je dost na prd protokol. Už ho naštěstí dobu nepoužívám, ale když jsem začínal, tak vím, že mi to občas zobrazovalo už neexistující soubory nebo zase nezobrazovalo nějaké existující. Tak to možná bude tím.
lukame
Profil *
Aha, tak rovnou mrknout na hosting? To mě vůbec nenapadlo, že ftp by jen nezobrazovalo. Vyzkouším
mckay
Profil
lukame:
Testuji, jestli se funkce vůbec provede a provede se vždy v pořádku. Ale soubor se mi objeví až až až
Pokud se funkce provede, data do souboru byly pravděpodobně už zapsány a bude to tak, jak říká Keeeehi.

Ono totiž pokud neprovádíte nějakým způsobem skript v konzolovém PHP, je na dobu běhu skriptu aplikované nějaké omezení na maximum_execution_time, který bývá někde blízko 30 sekundám. S přihlédnutím k tomu, že máte skript hostovaný na Wedosu navíc soudím, že nevoláte skript v konzolovém PHP, ale klasicky.

Teoreticky můžete otestovat zda vše proběhlo v pořádku hned po provedení zápisu pomocí funkce file_put_contents() tak, že hned otevřete soubor, do kterého jste právě zapsal a vypíšete jeho obsah (třeba hned echo file_get_contents($file)). Bude-li vypsát obsah, který zapisujete, soubor existuje a data jsou v něm zapsána.
lukame
Profil *
Hm... je to no. soubor se uloží vždy úplně v pořádku. OKamžitý výpis funguje, takže jde o nějaké zpoždění FTP protokolu. Sorry za zbytečnosti, člověk když je v pressu, tak vymýšlí zbytečné složitosti.. Díky
pcmanik
Profil
lukame:
Čo používaš na prehliadanie FTP? Napríklad dosť populárna filezilla automaticky neobnovuje adresár ale je potrebné pravým klikom dať obnoviť. K tej obnove čo popisuješ po niekoľkých hodinách príde pravdepodobne preto, že ftp klient sa od servera po neaktivite odpojí ale akonáhle s ním začneš niečo robiť sa znovu pripojí a stiahne aktuálnu stromovú štruktúru súborov.
lukame
Profil *
Používám Totalcmd. Ale i když se z FTP ihned odpojím a znovu připojím stále se mi soubor v adresáři neukáže.
Pavel Krátký
Profil
lukame:
Zkoušel jsi tlačítko "znovu načíst zdroj" (zelené šipečky nahoře vlevo, CTRL+R)?
lukame
Profil *
jasně

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: