Autor Zpráva
petřík
Profil *
Ahojte,
chtěl jsem se zeptat jestli mi někdo může poradit jak si vytvořit xml feed pro svůj maly obchod. Hedal jsem na netu, ale většina zveřejněných kodu byla pro free e-shop. Jako nejprimitivnější řešeni mě napadlo to udělat jako zapis do souboru, ale na netu jsem viděl i elegantnější řešni pomocí tříd. Ale když byly uvedeny ty třídy tak tam nebyl uvedeny způsob ve spojeni s db...poradí mi někdo
fuckin
Profil *
zalezi na co vsechno to budes pouzivat, jestli rss ci treba pro zbozi.cz apod. ?

Podivej se na struktury vytvorenych xml jinymi weby a zkus to taky tak vytvorit. Je vic zpusobu, me se nejvic zamlouva ten ze normalne pomoci echo a cyklu vypises cely xml obsah jak potrebujes.
petřík
Profil *
a můžeš ten zpusob nějak popsat? a je to normalně vytvořeny soubor ?
fuckin
Profil *
jak jsem psal vyse, prvni napis k cemu to bude slouzit abych vedel jake znacky a strukturu mam pouzit.

Ano bude to "soubor". Proste jen na ten skript odkazes napr xml.php a budes tam met xml tagy a data. Do rss ctecek normal das ten soubor xml.php, nemusi to byt s priponou nazev.xml.
petřík
Profil *
no mam maly obchod v db mam tabulku produkt a chtěl bych to pro seznam heureka atd...
petřík
Profil *
našel jsem tento způsob ale nevím jak mam naistalovat ten pear
Alphard
Profil
Na to by snad ani PEAR neměl být nutný. Třídy pro práci s XML samozřejmě existují, ale tady bude dost možná nejjednodušší naplnění předpřipravené šablony.
Třeba pro RSS to může vypadat nějak takhle:
<?php
header ('Expires: ' . gmdate('D, d M Y H:i:s') . '  GMT');
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . '  GMT');
header ('Content-Type: text/xml');
// header('Content-type: application/xml; charset="utf-8"',true);
include "../pripojeni_db.php";
$result_01 = mysql_query ("select c.id, c.nadpis, c.perex_html, date_format(c.cas, '%a, %d %b %Y %H:%i:%s GMT') cas, u.nick autor, c.cas from clanky c left join uzivatele u on c.autor = u.id where c.zobrazit = 1 order by c.id desc limit 5");
//echo mysql_error ();
echo "<?xml version=\"1.0\" encoding=\"iso-8859-2\"?>\n";
echo "<rss version=\"2.0\" xml:lang=\"cs\">\n";
echo "<channel>\n";
// ...
while ($line = mysql_fetch_assoc ($result_01))
  {  echo "<item>\n";
     echo "<title>".$line['nadpis']."</title>\n";
     echo "<description>".strip_tags ($line['perex_html'])."</description>\n";
     echo "<author>".$line['autor']."</author>\n";
     echo "<pubDate>".$line['cas']."</pubDate>\n";
     echo "<link>http://".$_SERVER['SERVER_NAME']."/index.php?clanek=".$line['id']."</link>\n";
     //echo "<comments></comments>\n";
     echo "</item>\n";  }
echo "</channel>\n";
echo "</rss>\n";
?>

Vaše XML bude asi velmi podobné.

Koukal jsem na http://sluzby.heureka.cz/napoveda/import/ a je to jednoduchý xml soubor. Udělejte to stejně, jako když vypisujete html kód stránky, jen použijte jiné tagy.
petřík
Profil *
Alphard
děkuji za nazornou ukazku,ale kdybych aplikoval třeba na svůj web tento kod tak bych stránkách udělal odkaz ve stylu rss.php a ten by vypisoval tady toto. Ale ja jsem pochopil že to má byt přimo v souboru xml. Nebo si to špatně vykladam?
DJ Miky
Profil
Nezáleží na příponě, ten PHP skript vygeneruje XML soubor. Můžeš mít rss.php nebo rss.xml a bude to fungovat úplně stejně (pokud pošleš správnou hlavičku Content-Type: text/xml).
petřík
Profil *
DJ Miky
takže jestli to dobře chapu tak to co tu uvedl Alphard
můžu odkazovat jako rss.xml protože tam uvedl header ('Content-Type: text/xml');
chapu to dobře?
Alphard
Profil
petřík:
Já jsem dal ukázku RSS kanálu, přičemž RSS je XML soubor, stejně jako např. XHTML. Jen si upravte tagy.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: