| Autor | Zpráva | ||
|---|---|---|---|
| raddimm.xx Profil |
#1 · Zasláno: 14. 11. 2016, 13:14:14
Mám XML (konkrétně se jedná o zbozi.cz) na 500 000 produktů. Vše fungovalo OK po přestěhování serveru mi píše:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in ... Přičemž na původním serveru byla nastavena paměť na pár mega, na novém jsem zvednul několikanásobně a přesto vytvoří max něco málo přes 400 000 zápisů do sbouro, pak přeteče. Administrátor tvrdí, že tj sql (nová verze), která "jinak" hospodaří s pamětí. Myslel jsem si že to je spíše práci se souborem. Moc tomu nerozumím. Navedete mě na možnosti jak správně vytvářet takhle velký XML co nejhospodárněji. Případně tip v čem může být tak podstatný rozdíl. PS na vytváření používám $soubor=fopen("data_neco.xml", "w");
$hlavicka = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><SHOP>";
fwrite($soubor,$hlavicka);
... atd |
||
| Prochy Profil |
#2 · Zasláno: 14. 11. 2016, 13:19:56
Zpracovávat to po částech.
What is the best way to write a large file to disk in PHP? PHP fwrite() for writting a large string to file |
||
| raddimm.xx Profil |
#3 · Zasláno: 14. 11. 2016, 13:27:44
Prochy:
to asi neni úplně ono zapisuju po řádku respektive každou item |
||
| Keeehi Profil |
#4 · Zasláno: 14. 11. 2016, 14:01:30
raddimm.xx [#1]:
Ten kód co jsi sem dal dává smysl. Takto nějak by řešení mělo asi vypadat. Ovšem přetékat ti to může i někde jinde, než na samotném zápisu. A to jen z náhledu opravdu nezjistíme. |
||
|
Časová prodleva: 9 let
|
|||
0