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>
<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);
}
{
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);
}