Autor Zpráva
raddimm.xx
Profil
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
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
Prochy:
to asi neni úplně ono
zapisuju po řádku respektive každou item
Keeehi
Profil
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.

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:

0