Polskie wsparcie PrestaShop
PrestaShop => Php, Java, Flash => Wątek zaczęty przez: west w Czerwiec 13, 2013, 09:53:11 am
-
Mam otóż taki problem. Chce zapisac do pliku xml za pomocą instrukcji "file_put_contents" kilka tysięcy produktów. stworzyłem do tego pętle, która wygląda tak:
$i =0;
foreach ($products as $row) if ($row['active']){ {
(....)
if (i==500){
file_put_contents("plik.xml", $docxml, FILE_APPEND);
$i=0;
$docxml="";
}
$i++;
}
}
file_put_contents("plik.xml", $docxml, FILE_APPEND);
echo "export ok";
i cholera serwer obcina mi eksport na około 900 liniach...... Ktoś ma pomysł?
-
najprawdopodobniej za krotki czas wykonywania skryptu po stronie serwera. popros host o czasowe jego wydluzenie i wtedy sprawdz.
-
Dejayy mam ustawiony no limit :) Chcę, aby alokacja pamięci nie szła do góry. Inny pomysł ?
-
to moze osiagnieto max rozmiar pliku na host?
zawsze stopuje w okolicach 900? dokladnie na tym samym rekordzie czy za kazdym razem innym?
albo jeszcze inaczej... wrzuc sobie $docxml w var_dump i zoabcz czy w ogole wywala wszystko tak jak powinno, mzoe jakis rekord cos miesza...kwestia nieprawidlowego przecinka, srednika, cudzyslowiu czy <> w opisie produktu... nieraz takie "nic" potrafi doprowadzic do pasji ;)
-
Wiesz $docxml pobiera mi z pamięci koło pól giga. Co powoduje wywalenie skryptu. Co ciekawe podczas generowania xml dla 4k produktów. Co do znaczków zastosowałem pola CDDATA, które skutecznie czyszczą kod produktów.
Otóż znalazłem metodę na opróżnianie pamięci i dzisiaj będę testował..... Jeśli się uda powstanie narzędzie do generowania plików xml dla nokaut, skąpiec i innych takich. Niestety żaden obecnie dostępny generator xml tego nie potrafi - mówię tu o pricewars oraz rozwiązaniach komercyjnych takich jak "integrator" .....
-
Temat załatwiony $docxml nie czyści pamięci i trzeba korzystać z innych rozwiązań oraz porcjować dane do zapisu. Ale jak zrobiłem to śmiga aż miło :)