![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 9.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Plik XML o strukturze zamieszczonej ponizej probuje potraktowac kodem php i wrzucic dane do mysql'a w miedzyczasie zmieniajac kodowanie. Niestety dziala tylko przy malych plikach. Przy wiekszym 4,5 megaowym pliku przekracza dozowlona liczbe pamieci...
cos w stylu: Fatal error: Allowed memory size of 33554432 Czy da sie przerobic moj skrypt php zeby nie byl daki pamieciozerny ? z gory dziekuje za pomoc ! Plik XML o strukturze: Kod <?xml version="1.0" encoding="Windows-1250"?> <colors> <row id_Model="1" id_Color="1" Color="Biały Banquise" Rgb="FDFDFD" /> <row id_Model="1" id_Color="6" Color="Czarny Onyx" Rgb="000000" /> <row id_Model="1" id_Color="259" Color="Czerwony Ardent" Rgb="711F2B" /> <row id_Model="1" id_Color="2689" Color="Szary Aluminium (metalizowany)" Rgb="ADAAAD" /> <row id_Model="1" id_Color="2240" Color="Szary Fer (metalizowany)" Rgb="7B868C" /> ... </colors> Probuje potraktowac kodem w miedzyczasie zmieniajac jego kodowanie: Kod function puttomysql($a)
{ connect(); $xml = simplexml_load_file('foto/'.$a.'.xml'); //petla odczytujaca po kolei elementy xml'a foreach($xml -> row as $element) { // petla zczytujaca atrybuty z kazdego row foreach($element -> attributes() as $nazwa=>$wartosc){ $wartosc=iconv('utf-8','iso-8859-2',$wartosc); $tablica["$nazwa"] = "$wartosc"; } //petla wrzucajaca atrybuty wraz z nazwami do tablicy while( list($klucz, $wartosc) = each($tablica) ) { $pole=$pole.", `".$klucz."`"; $wartpola=$wartpola.', \''.$wartosc.'\''; } //tworzenie polecen do mysql $pole=strchr($pole, " "); $wartpola=strchr($wartpola, " "); $polecenie="insert into `$a`($pole) values ($wartpola)"; $wynik=mysql_query($polecenie); //zwolnienie zmiennych i tablicy unset($pole, $wartpola, $tablica); } |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Utwórz plik .htaccess i wpisz w nim poniższy kod:
Kod php_value memory_limit 200M Możesz tylko mieć nadzieje, że konfiguracja serwera nie blokuje takiego czegoś. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 9.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
serwer jest niby ustawiony na 256 megsow ;/
nie ma innego sposobu na wyciagniecie danych z tego typu xmla zeby nie mulilo pamieci ? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Np zastosowanie innego parsera xml
http://pl.php.net/xmlreader -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 11:39 |