Autor Zpráva
Baron_Prasil
Profil *
Potřeboval bych cachovat vytvořený string. Napadá mě uložení do souboru a kontrola poslední změny souboru + string pak načítat z onoho souboru. Bohužel ale nemám tušení, co mám na google vyhledávači hledat. Budu rád za každou výpomoc.
Alphard
Profil
file_put_contents(), filemtime(), file_get_contents().
Coompiik
Profil
Jestli chceš nějakej jednoduchej hotovej kód tak tu:

Uložení:
<?
$uloz = "Nejaky Data";
$soubor = "cache.txt";
file_put_contents($soubor, $uloz);
?>

Načtení:
<?
$soubor = "cache.txt";
$data = file_get_contents($soubor);
$aktual = date ("d.m. Y | H:i:s", filemtime($soubor));
echo "Byly načteny data! Jsou to <b> " . $data . "</b> a naposledy byly zaktualizovány <b>" . $aktual . "</b>.";
?>
Baron_Prasil
Profil *
Uvědomil jsem si, že to asi jen tak jednoduché nebude. Data ukládám do array() .... $data[$x]. Jako mohu takové data uložit v array() do souboru a zpětně je pak vytáhnout?
Jan Tvrdík
Profil
Baron_Prasil:
Musíš ty data serializovat. Např. pomocí serialize nebo json_encode.
juriad
Profil
Nebo si definuj vlastní formát souboru (třeba: co řádek, to prvek pole) a napiš si funkce na načtení pole ze souboru a zápis pole do souboru.
Tady jsem psal ukázku, jak načítat pole ze souboru a přidávat nebo odebírat jeden záznam. Bylo to specifické použití, ale třeba chceš něco podobného.
Jan Tvrdík
Profil
juriad:
Nebo si definuj vlastní formát souboru
To bych výrazně nedoporučoval. Proč vymýšlet proprietární formáty, když existující fungují dobře?
juriad
Profil
Jan Tvrdík:
Protože může potřebovat interoperabilitu s jinými aplikacemi. Neříkám, aby vymýšlel něco šíleného, ale jeden záznam na řádek, nebo klíč = hodnota jsou široce používané formáty (má snad PHP funkce pro jejich zpracování?). Zrovna PHPí serialize bych z tohoto důvodu nedoporučoval (možná jsem jen přílíš citlivý na vendor lock-in a moc často píši zpracování jako posloupnost skriptů v mnoha jazycích).
json_encode bych osobně použil pro data o více úrovních. Nebránil bych se ani XML, pokud budou data potřebovat nějaké anotace v podobě atributů nebo vyžadovat pevné schéma. Pro jednodušší klidně CSV nebo výše zmíněné formáty.

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: