Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
- <meta name="keywords" content="Slevy, slevvý portál, zboží, obchod, zlevněné zboží, slevněné zboží, slevy, slevi, slevnit, zlevnit" />
- <meta name="description" content="SLEVY - slevový portál">
- <title>SLEVY</title>
- <link rel="stylesheet" type="text/css" href="style.css">
- </head>
- </html>
- <?php
- function clearmysqli() {
- $mysqli = new mysqli("localhost","root","","slevy");
- $mysqli->set_charset("utf8");
- $mysqli->query("TRUNCATE table zbozi");
- echo "Databáze úšpěšně vyčištěna.<br><br>";
- $mysqli->close();
- }
- //clearmysqli();
- function feed($url,$id_feed){
- global $pocet;
- $tag=array();
- //swtich , podobné jako if ($id_feed==1)
- switch ($id_feed) {
- //tady inicializujeme tagy v xml feedu
- //hyperslevy
- case(1):
- $tag['ID_ITEM']="ID";
- $tag['TITLE']="TITLE";
- $tag['IMAGE']="IMAGE";
- $tag['FINAL_PRICE']="FINAL_PRICE";
- $tag['ORIGINAL_PRICE']="ORIGINAL_PRICE";
- $tag['CURRENCY']="CURRENCY";
- $tag['DISCOUNT']="DISCOUNT";
- $tag['CUSTOMERS']="CUSTOMERS";
- $tag['MIN_CUSTOMERS']="MIN_CUSTOMERS";
- $tag['CATEGORY']="CATEGORY";
- $tag['MAX_CUSTOMERS']="MAX_CUSTOMERS";
- $tag['DEAL_START']="DEAL_START";
- $tag['DEAL_END']="DEAL_END";
- $item="DEAL";
- break;
- //justjoy
- case(2):
- $tag['ID_ITEM']="id";
- $tag['TITLE']="title";
- $tag['IMAGE']="imageUrl";
- $tag['FINAL_PRICE']="ourPrice";
- $tag['ORIGINAL_PRICE']="originalPrice";
- $tag['CURRENCY']="currency";
- $tag['DISCOUNT']="discount";
- $tag['CUSTOMERS']="customers";
- $tag['MIN_CUSTOMERS']="minCustomers";
- $tag['CATEGORY']="CATEGORY";
- $tag['MAX_CUSTOMERS']="maxCustomers";
- $tag['DEAL_START']="dealStart";
- $tag['DEAL_END']="dealEnd";
- $item="deal";
- break;
- }
- //tohle nám přehodí klíče na value a value na klíče... jinak by se to muselo definovat naopak a to by působilo zmateně
- $tag=array_flip($tag);
- //item je tag který odděluje jednotlivé položky
- //spustíme knihovnu xmlreadru
- $xml = new XMLReader();
- $xml->open($url);
- $pole=array();
- $pocet=0;
- //projedeme celý xml soubor, tag pro tagu
- while ($xml->read()) {
- //pokud současny element je konečný element položky ($item), odešleme proměnou pole do funkce uložit
- if ($xml->nodeType == XMLReader::END_ELEMENT && $xml->name==$item) {
- ulozit($pole,$tag,$id_feed);
- $pole=array();
- $pocet++;
- }
- //pokud současny element je tag ($tag) který sme se definovali hned na začátku funkce
- if ($xml->nodeType == XMLReader::ELEMENT && isset($tag[$xml->name])) {
- //tak uložíš obsah do pole, a jako klíč použiješ definovaný tag ($tag) na začátku funkce
- $pole[$xml->name]=trim($xml->readString());
- }
- }
- }
- function ulozit($polozky,$tag,$id_feed){
- $mysqli = new mysqli("localhost","root","","cms");
- $mysqli->set_charset("utf8");
- //pole musí byt v dotazu v uvozovkách+ ošetřime proti sql injection
- foreach ($polozky as $key=>$value) {
- //nastavíme hodnotu z tagu
- $pole[$tag[$key]]="'".$mysqli->real_escape_string($value)."'";
- }
- //pokud není vyplňený nejduležitejší tag, ukončíme funkci
- if (!isset($pole['ID_ITEM'])) {
- echo "Nebyl vyplňen povinný tag";
- //konec
- return;
- }
- //ověříme zda li již existuje v databázi
- if ($row=$mysqli->query("SELECT ID FROM zbozi WHERE ID_ITEM=".$pole['ID_ITEM']." AND id_feed=".$id_feed)->fetch_assoc()) {
- //projedeme znova cyklem protože jsem líný psát dlouhý sql dotaz na update
- $query='';
- foreach ($pole as $key=>$value) {
- $query.=$key."=".$value.", ";
- }
- //pokud ano proveď update
- $sql=$mysqli->query("UPDATE zbozi SET ".$query."id_feed=$id_feed WHERE id=".$row['ID']);
- if (!$sql) {
- //když se neuloží vypiš chybu
- echo $mysqli->error;
- }
- $idecko=$row['ID'];
- } else {
- //a tady už jen vypišeme všechny proměnné, v tvojem případě uložíš do databáze, ale to už zvladneš
- $pole['id_feed']=$id_feed;
- $query=$mysqli->query("INSERT INTO zbozi (" . implode(", ", array_keys($pole)) . ") VALUES (" . implode(", ", $pole) . ")");
- $idecko=$mysqli->insert_id;
- }
- echo "Položka ".$idecko." byla úspěšně uložena do databáze.<br>";
- if (!$query) {
- //když se neuloží vypiš chybu
- echo $mysqli->error;
- }
- //echo $key." ".$value." ".strlen($value)."<br>";
- $mysqli->close();
- }
- //echo "<br><br>";
- //žádne časové limity na skript(nefunguje na wedosu)
- set_time_limit(0);
- $feed=array(1=>"http://www.hyperslevy.cz/export/export.php",
- 2=>"http://www.justjoy.cz/feed/cj.xml"
- );
- foreach ($feed as $key=>$value){
- feed($value,$key);
- echo "<br>Do databáze bylo přidáno celkem ".$pocet." položek.";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement