royduin
Gebruiker
- Lid geworden
- 6 mei 2006
- Berichten
- 583
Beste forum leden,
ik ben bezig met een script dat producten importeert, omschrijvingen en afbeeldingen download en opslaat. Het gaat om een totaal van 5000 producten!
Helaas krijg ik de volgende melding:
Momenteel heb ik het volgende script, dit kan denk ik eenvoudiger en sneller:
ik ben bezig met een script dat producten importeert, omschrijvingen en afbeeldingen download en opslaat. Het gaat om een totaal van 5000 producten!
Helaas krijg ik de volgende melding:
Code:
Fatal error: Allowed memory size of 209715200 bytes exhausted (tried to allocate 79 bytes) in /home/***/domains/***/public_html/inc/simple_html_dom.php on line 895
Momenteel heb ik het volgende script, dit kan denk ik eenvoudiger en sneller:
Code:
<?php
function product_afbeelding_*** ($id){
include_once("inc/simple_html_dom.php");
$html = file_get_html("http://***/info/".$id."/info.html");
$a = 1;
foreach($html->find('a') as $img){
if(strstr($img->href, "jpg")){
$url = 'http://www.***.nl'.$img->href;
$img = '/home/***/domains/***/public_html/img/product/'.$id.'-'.$a.'.jpg';
file_put_contents($img, file_get_contents($url));
$string .= $id.'-'.$a.'.jpg,';
$a++;
}
}
return $string;
}
function product_omschrijving_*** ($id){
$regels = file("http://***.nl/info/".$id."/info.html");
$i = 0;
foreach($regels as $regel){
$pos = strpos($regel, '<input type="button" value="Bestel" class="orderbutton" onClick="addProductOBN('.$id.');">');
if($pos){
$start = $i+3;
}
$i++;
}
$a = $start;
foreach($regels as $regel){
$pos2 = eregi('<div align="right" class="normal small">', $regels[$a]);
if($pos2){
break;
} else {
$tekst = str_replace(' class="normal"', "", $regels[$a]);
$tekst = str_replace(' valign=top', "", $tekst);
$tekst = str_replace(' class=normal', "", $tekst);
$tekst = str_replace('<td><a href="/compare?artnr='.$id.'" title="Productvergelijking">Product toevoegen aan vergelijking</a></td>', "", $tekst);
$tekst = str_replace('<td><b>Productvergelijking</b></td>', "", $tekst);
$tekst = str_replace('/ext.php?link=', "", $tekst);
$tekst1 .= $tekst;
}
$a++;
}
return "<table><tr><td></td><td><table>".rawurldecode($tekst1);
}
ini_set("memory_limit","200M");
include_once('inc/config.php');
include_once('inc/function.php');
echo "#################################################<br>";
echo "## START<br>";
echo "#################################################<br>";
mysql_query("DELETE FROM producten WHERE leverancier='1' AND toegevoegd='0'");
echo "## DATABASE GELEEGD<br>";
echo "#################################################<br>";
$xml = simplexml_load_file('***.xml');
echo "## *** XML bestand geopend<br>";
$a = 0;
foreach($xml as $regeltje){
$query = mysql_query("SELECT * FROM categorie_leverancier WHERE leverancier='1' AND cat_leverancier='".mysql_real_escape_string($xml->product[$a]->productgroep)."'");
$aantal = mysql_num_rows($query);
if($aantal == FALSE){
mysql_query("INSERT INTO categorie_leverancier (leverancier, cat_leverancier) VALUES (1, '".mysql_real_escape_string($xml->product[$a]->productgroep)."')");
}
$query2 = mysql_query("SELECT * FROM producten WHERE leverancier='1' AND id_leverancier='".mysql_real_escape_string($xml->product[$a]->artnr)."'");
$aantal = mysql_num_rows($query2);
if($aantal == FALSE){
$query3 = mysql_query("SELECT * FROM categorie_leverancier WHERE leverancier='1' AND cat_leverancier='".mysql_real_escape_string($xml->product[$a]->productgroep)."'");
$obj = mysql_fetch_object($query3);
$groep = $obj->categorie;
$afbeelding = product_afbeelding_***(mysql_real_escape_string($xml->product[$a]->artnr));
$omschrijving = mysql_real_escape_string(product_omschrijving_***($xml->product[$a]->artnr));
mysql_query("INSERT INTO producten (leverancier, id_leverancier, naam, omschrijving, productgroep, fabrikant, prijs, voorraad, afbeelding, sku, ean, unspsc) VALUES (1, '".mysql_real_escape_string($xml->product[$a]->artnr)."', '".mysql_real_escape_string($xml->product[$a]->omschrijving)."', '".$omschrijving."', '".$groep."', '".mysql_real_escape_string($xml->product[$a]->fabrikant)."', '".mysql_real_escape_string($xml->product[$a]->prijs_ex)."', '".mysql_real_escape_string($xml->product[$a]->aantal_op_voorraad)."', '".$afbeelding."', '".mysql_real_escape_string($xml->product[$a]->sku)."', '".mysql_real_escape_string($xml->product[$a]->ean)."', 0)");
}
$a++;
}
echo "## *** categorieën geupdate<br>";
echo "## *** producten geupdate<br>";
echo "## *** prijzen geupdate<br>";
echo "#################################################<br>";
mysql_query("DELETE FROM producten WHERE leverancier='2' AND toegevoegd='0'");
echo "## DATABASE GELEEGD<br>";
echo "#################################################<br>";
$xml = simplexml_load_file('***.xml');
echo "## *** XML bestand geopend<br>";
$a = 0;
foreach($xml as $regeltje){
$query = mysql_query("SELECT * FROM categorie_leverancier WHERE leverancier='2' AND cat_leverancier='".mysql_real_escape_string($xml->PRODUCT[$a]->groepomschrijving)."'");
$aantal = mysql_num_rows($query);
if($aantal == FALSE){
mysql_query("INSERT INTO categorie_leverancier (leverancier, cat_leverancier) VALUES (2, '".mysql_real_escape_string($xml->PRODUCT[$a]->groepomschrijving)."')");
}
$query2 = mysql_query("SELECT * FROM producten WHERE leverancier='2' AND id_leverancier='".mysql_real_escape_string($xml->PRODUCT[$a]->artikelnummer)."' OR ean='".mysql_real_escape_string($xml->PRODUCT[$a]->EAN)."'");
$aantal = mysql_num_rows($query2);
if($aantal == FALSE){
$query3 = mysql_query("SELECT * FROM categorie_leverancier WHERE leverancier='2' AND cat_leverancier='".mysql_real_escape_string($xml->PRODUCT[$a]->groepomschrijving)."'");
$obj = mysql_fetch_object($query3);
$groep = $obj->categorie;
$afbeelding = 0;
$omschrijving = 0;
mysql_query("INSERT INTO producten (leverancier, id_leverancier, naam, omschrijving, productgroep, fabrikant, prijs, voorraad, afbeelding, ean, unspsc) VALUES (2, '".mysql_real_escape_string($xml->PRODUCT[$a]->artikelnummer)."', '".mysql_real_escape_string($xml->PRODUCT[$a]->combi_omschrijving)."', '".$omschrijving."', '".$groep."', '".mysql_real_escape_string($xml->PRODUCT[$a]->merk)."', '".mysql_real_escape_string($xml->PRODUCT[$a]->prijsdealer)."', '".mysql_real_escape_string($xml->PRODUCT[$a]->voorraad)."', '".$afbeelding."', '".mysql_real_escape_string($xml->PRODUCT[$a]->EAN)."', '".mysql_real_escape_string($xml->PRODUCT[$a]->unspsc)."')");
}
$a++;
}
echo "## *** categorieën geupdate<br>";
echo "## *** producten geupdate<br>";
echo "## *** prijzen geupdate<br>";
echo "#################################################<br>";
$endtime = microtime();
$endarray = explode(" ", $endtime);
$endtime = $endarray[1] + $endarray[0];
$totaltime = $endtime - $starttime;
$totaltime = round($totaltime,5);
echo "## Geladen in ".$totaltime." seconden.<br>";
echo "#################################################<br>";
echo "## Copyright 2010 ***";
?>
Laatst bewerkt: