Zadejte hledaný výraz...

Čtečka XML feedu z e-shopů

Napsal megaloser;207126
Když už jsme u toho, lze čtečku xml feedu nějak přidat do wordpressu? Nebo nevítě někdo o takovém pluginu do wordpressu? Díky.
zkus upravit nejakou rss ctecku, je to na stejny brdo.
5. 2. 2009 20:05:58
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134904
Napsal Unregistered;207143
zkus upravit nejakou rss ctecku, je to na stejny brdo.
No jo ale já jsem spíš obchodník, upravit bych to nezvládl. Ale zaplatil bych za to něco málo.
5. 2. 2009 20:10:31
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134903
MarekMlcoch
verified
rating uzivatele
15. 2. 2009 01:53:09
Napsal zaachi;203317
Nez pouzivat fopen a slozite cteni, muzes to udelat jednoduse pres Dom document:
Urcite se s tim pracuje lepe a rychleji.
Insert urcite nedavat do foru, kdyz muzes vkladat jednim dotazem.
Dotaz si udelas jednoduse napriklad takto:
Doufam ze tam nebude moc chyb, napsal jsem to jenom rychle.
Zdravím Tě Zaachi!
Začal jsem se teď po krátké odmlce zabývat čtečkou xml feedů a insertem z nich do databáze MySQL. Vyzkoušel jsem ten Tvůj návod, ale nějak mi to nezafungovalo, nejspíš proto, že jsem to nějak špatně zapsal. Nicméně jsem si vzal návod od Honzaa a ten mi zafungoval. Níže uvádím syntax kódu, který potřebuji rozšířit o insert (ten se mi daří), ale za podmínky, že se záznam již v databázi nenachází. Pokud v databázi již je tak potřebuji aby se mi provedl update u daného záznamu výrobku. Nedaří se mi napsat syntax tak aby zafungovala podmínka. Můžeš mi prosím poradit. Děkuji Ti předem.
// ************************************* Vytvoření funkce ******************************
function GetElementByName ($xml, $start, $end) {
global $pos;
$startpos = strpos($xml, $start);
if ($startpos === false) {
return false;
}
$endpos = strpos($xml, $end);
$endpos = $endpos+strlen($end);
$pos = $endpos;
$endpos = $endpos-$startpos;
$endpos = $endpos - strlen($end);
$tag = substr ($xml, $startpos, $endpos);
$tag = substr ($tag, strlen($start));
return $tag;
}
// ***************************** Nastavení informací k připojení jako konstant ***************************
define ('db_user', 'root');
define ('db_password', 'root');
define ('db_host', 'localhost');
define ('db_database', 'testshop');
// ***************************** Připojení a výběr databáze *****************************
$dbc = mysql_connect (localhost, root, root) or die ('Nelze se připojit k databázovému serveru : '.mysql_error());
mysql_select_db (testshop);
// ************************************ Otevření a přečtení souboru xml. *********************************
$data="";
$file = "http://localhost/prestashop/xml/xml.xml"; // Cesta k xml souboru *************************
$pos = 0;
$Nodes = array();
if (!($fp = fopen($file, "r"))) { // Jestliže se soubor neotevře zahlásí chybu viz. řádek níže ***************************
die("Nebyl nalezen vstupní XML soubor!");
}
while ($getline = fread($fp, 4096)) { // Načte data ze souboru xml do velikosti viz. údaj v závorce v 'Kb' ***********************
$data = $data . $getline;
}
$count = 0;
$pos = 0;
// ****************************** Uzavře xml soubor a vytvoří pole (array) pro všechny tegy **********************
while ($node = GetElementByName($data, "", "")) {
$Nodes = $node;
$count++;
$data = substr($data, $pos);
}
// Načtení dat z tagů
for ($i=0; $i<$count; $i++) {
$prod = GetElementByName($Nodes, "", "");
$desc = GetElementByName($Nodes, "", "");
$url = GetElementByName($Nodes, "", "");
$price = GetElementByName($Nodes, "", "");
$pricev = GetElementByName($Nodes, "", "");
$dues = GetElementByName($Nodes, "", "");
$itemt = GetElementByName($Nodes, "", "");
$kat = GetElementByName($Nodes, "", "");
}
// ************************************ Selekt existujících záznamů zboží ***********************************
$sqls = ("SELECT name FROM ps_product_lang");
mysql_query($sqls);
if ($sqls = $prod){
echo ("Tento materiál již v databázi existuje!"); // Materiál již v databázi nalezen
}
$sqli = ("INSERT INTO ps_product_lang (id_lang, description, name) VALUES (3, '$desc', '$prod')");
mysql_query($sqli);
?>
15. 2. 2009 01:53:09
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134902
MarekMlcoch
verified
rating uzivatele
15. 2. 2009 01:57:12
Napsal Honzaa;202845
Úplně univerzální čtečka to není. Dokáže přečíst pouze jednoduché elementy bez parametrů. Ale je velmi jednoduchá a pro většinu XML souborů dostačuje. Jinak ve zdrojovém kódu je vlastně vše vysvětleno i to, jak načíst elementy do proměnných. Chce to ale trochu umět PHP a pokud to chceš importovat do databáze, stačí udělat jednoduchý insert do smyčky FOR
Zdravím Honzaa,
čtečka od Tebe je funkční, ale potřeboval bych poradit z následujícím.
Začal jsem se teď po krátké odmlce zabývat čtečkou xml feedů a insertem z nich do databáze MySQL. Níže uvádím syntax kódu, který potřebuji rozšířit o insert (ten se mi daří), ale za podmínky, že se záznam již v databázi nenachází. Pokud v databázi již je tak potřebuji aby se mi provedl update u daného záznamu výrobku. Nedaří se mi napsat syntax tak aby zafungovala podmínka. Můžeš mi prosím poradit. Děkuji Ti předem.
// ************************************* Vytvoření funkce ******************************
function GetElementByName ($xml, $start, $end) {
global $pos;
$startpos = strpos($xml, $start);
if ($startpos === false) {
return false;
}
$endpos = strpos($xml, $end);
$endpos = $endpos+strlen($end);
$pos = $endpos;
$endpos = $endpos-$startpos;
$endpos = $endpos - strlen($end);
$tag = substr ($xml, $startpos, $endpos);
$tag = substr ($tag, strlen($start));
return $tag;
}
// ***************************** Nastavení informací k připojení jako konstant ***************************
define ('db_user', 'root');
define ('db_password', 'root');
define ('db_host', 'localhost');
define ('db_database', 'testshop');
// ***************************** Připojení a výběr databáze *****************************
$dbc = mysql_connect (localhost, root, root) or die ('Nelze se připojit k databázovému serveru : '.mysql_error());
mysql_select_db (testshop);
// ************************************ Otevření a přečtení souboru xml. *********************************
$data="";
$file = "http://localhost/prestashop/xml/xml.xml"; // Cesta k xml souboru *************************
$pos = 0;
$Nodes = array();
if (!($fp = fopen($file, "r"))) { // Jestliže se soubor neotevře zahlásí chybu viz. řádek níže ***************************
die("Nebyl nalezen vstupní XML soubor!");
}
while ($getline = fread($fp, 4096)) { // Načte data ze souboru xml do velikosti viz. údaj v závorce v 'Kb' ***********************
$data = $data . $getline;
}
$count = 0;
$pos = 0;
// ****************************** Uzavře xml soubor a vytvoří pole (array) pro všechny tegy **********************
while ($node = GetElementByName($data, "", "")) {
$Nodes = $node;
$count++;
$data = substr($data, $pos);
}
// Načtení dat z tagů
for ($i=0; $i<$count; $i++) {
$prod = GetElementByName($Nodes, "", "");
$desc = GetElementByName($Nodes, "", "");
$url = GetElementByName($Nodes, "", "");
$price = GetElementByName($Nodes, "", "");
$pricev = GetElementByName($Nodes, "", "");
$dues = GetElementByName($Nodes, "", "");
$itemt = GetElementByName($Nodes, "", "");
$kat = GetElementByName($Nodes, "", "");
}
// ************************************ Selekt existujících záznamů zboží ***********************************
$sqls = ("SELECT name FROM ps_product_lang");
mysql_query($sqls);
if ($sqls = $prod){
echo ("Tento materiál již v databázi existuje!"); // Materiál již v databázi nalezen
}
$sqli = ("INSERT INTO ps_product_lang (id_lang, description, name) VALUES (3, '$desc', '$prod')");
mysql_query($sqli);
?>
15. 2. 2009 01:57:12
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134901
Honzaa
verified
rating uzivatele
16. 2. 2009 06:06:17
Pokud se načítají pravidelně nová data, je třeba před načítáním vyprázdnit tabulku např. příkazem "TRUNCATE 'table' a pak teprve načítat nová data.
16. 2. 2009 06:06:17
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134900
Ja
verified
rating uzivatele
22. 6. 2009 19:33:14
truncate je vhodny, pokud nepotrebujete sledovat historii, nebo treba datum pridani zaznamu...
jinak to mozna to chce udelat ve 2 - 3 krocich, update na existujici zaznamy (pokud mas ID) a pak insert novych zaznamu, pripadne jeste ve tretim kroku smazat uz neplatne zaznamy...
22. 6. 2009 19:33:14
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134899
Prkny
verified
rating uzivatele
(1 hodnocení)
19. 1. 2010 10:44:02
Zdravím,
čtečka od Honzaa funguje výborně.
Problém však nastává pokud jsou xml data v trochu jiném formátu
Helma
Dostat z name slovo Helma není problém.
Ale jak dostat z OPTION NAME slovo Barva a parametr černá ?
A dále Velikost s parametrem L (59-61) ??
19. 1. 2010 10:44:02
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134898
bluedog
verified
rating uzivatele
(5 hodnocení)
19. 1. 2010 13:27:04
No me by zajimala nevic ctecka nebo jak naimportovat tohle http://www.intimia.cz/xml_zbozi.php do PrestaShopu nebo do jakekoliv free shopu :) Kdyz tam prosim do PM, mateli reseni ci tip jak na to
19. 1. 2010 13:27:04
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134897
MarekMlcoch
verified
rating uzivatele
20. 1. 2010 08:21:47
Napsal OliX;122548
Ahoj,
sháním nějakou čtečku XML feedu z e-shopů, ideálně v kombinaci s katalogem. Nevíte o něčem již hotovém?
Zdravím,
použijte čtečku od Honzaa.
20. 1. 2010 08:21:47
https://webtrh.cz/diskuse/ctecka-xml-feedu-z-e-shopu/strana/2/#reply134896
Pro odpověď se přihlašte.
Přihlásit