Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Import dużego pliku XML
nexis
post
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


Posiadam cennik w formacie XML o rozmiarze ok. 26 MB (dla zainteresowanych umieszczam go tymczasowo TUTAJ).

Na serwerze pamięc tymczasowa jest ustawiona na 128 MB, więc pobranie tego pliku z zewnętrznego serwera działa bez problemu.

Problem pojawia się jednak przy jego odczycie i wykonywaniu operacji na podstawie odczytanych informacji, a ściślej mówiąc w tym kodzie:

  1. <?php
  2. require '../config.php';
  3.  
  4. mysql_query('TRUNCATE TABLE categories') or die(mysql_error());
  5.  
  6. $file = "cennik.xml";
  7. $fp  = fopen($file, "r");
  8. $data = fread($fp, filesize($file));
  9. fclose($fp);
  10.  
  11. $xml_parser = xml_parser_create();
  12. xml_parse_into_struct($xml_parser, $data, $vals);
  13. xml_parser_free($xml_parser);
  14.  
  15. $super = '';
  16.  
  17. foreach ($vals as $array) {
  18. switch ($array['tag']) {
  19. case 'GRUPAGLOWNA':
  20. if ($array['type'] == 'open') {
  21. mysql_query ("INSERT INTO categories VALUES ('" . $array['attributes']['ID'] . "', '', '" . $array['attributes']['NAZWA'] . "');") or die (mysql_error());
  22. $super = $array['attributes']['ID'];
  23. }
  24. break;
  25. case 'PODGRUPA':
  26. if ($array['type'] == 'complete') {
  27. mysql_query ("INSERT INTO categories VALUES ('" . $array['attributes']['ID'] . "', '" . $super . "', '" . $array['attributes']['NAZWA'] . "');") or die (mysql_error());
  28. }
  29. break;
  30. }
  31. }
  32.  
  33. ?>


Co kończy się błędem:

  1. Fatal error: Out of memory (allocated 43515904) (tried to allocate 32 bytes) in /internal/parser.php on line 16


Kiedy powyższy skrypt uruchamiam dla małej części pliku cennika, to wszystko działa. Więc pytanie mam takie: czy da się jakoś rozbudować powyższy skrypt, aby poradził sobie z takim plikiem czy też jest jakiś inny sposób (np. rozbicie dużego pliku na kilka mniejszych)?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 20:25