Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $current = dirname(__FILE__);
- //$con = mysqli_connect("xxxx", "xxxx", "xxxx");
- //mysqli_select_db($con,"xxxxx");
- //mysqli_set_charset($con, 'utf8');
- require_once("$current/../connection/connection.inc.php");
- require_once("$current/./functions.php");
- $filename = "xxxxx.csv";
- $log = "";
- $log .= "LOG DATE: ".date('Y-m-d H:m:s')."<br/><hr/><br/>";
- ini_set('max_execution_time', '3600'); //set to 1 hour for this script
- ini_set('memory_limit', '128M'); //set max memory usage to 64M
- ini_set('auto_detect_line_endings', true);
- ini_set("display_errors", "off");
- $log .= "SCRIPTS EXECUTION TIME SET TO: ".(ini_get("max_execution_time")/60)." mins<br/><br/>";
- $row = 0;
- $items = 0;
- $imgs = 0;
- $data = Array();
- $putdir = "$current/../product-images";
- $fopen = fopen($filename, 'r');
- $genderarray = Array("kids"=>"k", "kiddies"=>"k", "men"=>"g", "mens"=>"g", "male"=>"g", "gents"=>"g", "ladies"=>"l", "lady"=>"l", "womens"=>"l", "female"=>"l", "unisex"=>"u");
- $ouncetoml = 29.5735296; //1 oz = 29.5735296 ml
- $log .= "PERFORMING CURRENCY CONVERSION OPTIONS:<br/><br/>";
- $stockarray = array(); //push all product items into this array to do stock comparison...
- $er = 0.14563; //default fallback exchange rate
- $xr_feed ="http://themoneyconverter.com/ZAR/rss.xml";
- $log .= "Default fallback exchange rate is 1 USD = $er ZAR<br/>Exchange Rate XML Feed URL is $xr_feed<br/>";
- $feed = file_get_contents($xr_feed);
- if($feed):
- $xml = new SimpleXMLElement($feed);
- if($xml->channel->item[57]->title == "USD/ZAR"):
- $er = $xml->channel->item[57]->description;
- $er = split("=",$er);
- $er = trim($er[1]);
- $er = split(" ",$er);
- $er = trim($er[0]);
- $log .= "SUCCESS Got current exchange rate, 1USD = $er ZAR<br/>";
- else:
- $log .= "FAIL Cannot determine current conversion rate, falling back to 1 USD = $er ZAR<br/>";
- endif;
- else:
- $log .= "FAIL Cannot open XML exchange rate feed, falling back to 1 USD = $er ZAR<br/>";
- endif;
- $log .= "<br/>STARTING IMAGE & DATA COPY FROM SERVER TO SERVER:<br/><br/>";
- while(($data = fgetcsv($fopen, 0, ",")) !== false):
- $row++;
- if($row > 1): //initial limit set to 10 000 items otherwise we'll chew up the server & spit it out...
- $num = count($data);
- $code = $data[0];
- $brand = $data[1];
- $designer = $data[2];
- $size = $data[3];
- //SIZE CONVERSION
- $size = explode(" ",trim($size));
- $unit = strtolower(trim($size[1]));
- switch($unit):
- case 'oz':
- $size = trim($size[0]);
- $size = $size*$ouncetoml;
- $size = round(ceil($size/5)*5);
- $size = $size." ml";
- break;
- case 'ml':
- $size = trim($size[0]);
- $size = round(ceil($size/5)*5);
- $size = $size." ml";
- break;
- endswitch;
- if (is_array($size)):
- $size = "n/a";
- endif;
- //END SIZE CONVERSION
- $type = $data[4];
- $gender = strtolower(trim($data[5]));
- $gender = $genderarray[$gender];
- $set = $data[6];
- $description = $data[7];
- //COST PRICE, CONVERSION & FORMULA WORK NOW
- $cost = $data[9];
- $cost = $cost/$er;
- $cost = round($cost,2);
- $oprice = floor($cost)*2.15;
- $oprice = $oprice+60;
- $oprice = round($oprice,2);
- //END COST PRICE CONVERSIONS NOW
- $image = $data[8];
- $ext1 = explode(".",$image);
- $ext2 = array_slice($ext1,-1);
- $ext = $ext2[0]; //file extension
- $imagename = strtolower($data[0]);
- array_push($stockarray, $code);
- //Insert data into table
- $isql = "INSERT INTO tblfragrances (fgender, fbrand, ftitle, fstylenumber, fimage, fdescription, fsubcategory, fsize, fcost, foprice, fremote) VALUES ('$gender', '$designer', '$designer - $brand', '$code', '$imagename', \"$description\", '$type', '$size', '$cost', '$oprice', '1') ON DUPLICATE KEY UPDATE fgender='$gender', fbrand='$designer', ftitle='$designer - $brand', fstylenumber='$code', fimage='$imagename', fdescription=\"$description\", fsubcategory='$type', fsize='$size', fcost='$cost', foprice='$oprice', fremote='1'";
- $additem = mysqli_query($con, $isql);
- if(!$additem):
- $log .= "ERROR Adding item $code to database<br/>";
- else:
- $log .= "ADDED Item $code to database<br/>";
- $items++;
- endif;
- if(file_exists("$putdir/$imagename.$ext") && filesize("$putdir/$imagename.$ext") > 5):
- $log .= "SKIPPING EXISTS $image > $putdir/$imagename.$ext<br/>";
- resize("$putdir/$imagename.$ext", "$putdir/200/$imagename.$ext", 200, 200, 80);
- resize("$putdir/$imagename.$ext", "$putdir/400/$imagename.$ext", 400, 400, 80);
- else:
- $content = file_get_contents($image);
- if(!$content):
- $log .= "ERROR GETTING FILE $image<br/>";
- else:
- $fp = fopen("$putdir/$imagename.$ext", "w");
- $addimage = fwrite($fp, $content);
- fclose($fp);
- $log .= ($addimage == true ? "SUCCESS $image > $putdir/$imagename.$ext<br/>" : "FAIL $image > $putdir/$imagename.$ext<br/>");
- ($addimage == true ? $imgs++ : null);
- if(!resize("$putdir/$imagename.$ext", "$putdir/200/$imagename.$ext", 200, 200, 80)): $log .= "Error making 200 thumb<br/>"; endif;
- if(!resize("$putdir/$imagename.$ext", "$putdir/400/$imagename.$ext", 400, 400, 80)): $log .= "Error making 400 image<br/>"; endif;
- endif;
- endif;
- endif;
- endwhile;
- //now we create a string of all items that were looped over in the CSV file
- $count = count($stockarray);
- $instock = implode("','", $stockarray);
- //now that we have a string representation of all stock, we can delete all in the DB that does not reside in this string, simple huh
- $dsql = "DELETE FROM tblfragrances WHERE fstylenumber NOT IN ('$instock') AND fremote = '1'";
- $delete = mysqli_query($con,$dsql);
- $log .= ($delete !== false ? "<br/>SUCCESS Removed all items in database that were not in CSV file<br/>" : "<br/>ERROR Removing all items in database that were not in CSV file<br/>");
- fclose($fopen);
- $log .= "<br/>$count ITEMS IN ARRAY, $row ROWS IN CSV FILE<br/>";
- $log .= "<br/>ADDED / UPDATED $items PRODUCTS TO ETERNITI DATABASE<br/>";
- $log .= "<br/>TRANSFERRED $imgs IMAGES FROM REMOTE SERVER TO LOCAL ETERNITI SERVER FOR RESIZING.<br/>";
- $log .= "<br/>LAST LINE VALUE IS $code<br/>";
- $headers = "From: xxxxx<xxxxx>\r\n";
- $headers .= "Content-Type: text/html; Charset: UTF-8\r\n";
- mail("xxxxx", "xxxxx", $log, $headers);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement