Autor Zpráva
zedna
Profil
Ahoj používám script rss generátoru

echo "<?xml version=\"1.0\"? >
<rss version=\"0.91\">
<channel>";

	$result = $db->query("SELECT * FROM news_articles ORDER BY datetime DESC LIMIT 15");
	while($row = $db->fetch_array($result)) {

	$row['title'] = htmlentities($row['title']);
	$row['story'] = htmlentities($row['story']);

	echo "
	<item>
	<title>" . $row['title'] . "</title>
	<postedon>" . $row['datetime'] . "</postedon>
	<link>" . $base_directory . "modules.php?name=news&amp;file=news_archive&amp;func=readarticle&amp;id=" . $row['id'] . "</link>
	<story>" . $row['story'] . "</story>
	</item>";
	}

echo "
</channel>
</rss>";


jenže když na webu kliknu na odkaz RSS, tak se mi ukáže

Zpracování XML nebylo úspěšné: syntaktická chyba (řádek č. 1, znak č. 19)

Chyba: invalid XML declaration
Specifikace: http://www.w3.org/TR/REC-xml/#NT-XMLDecl

nemůžu ale pořádně přijít na tu konkrétní chybu ani podle specifikace, nějak se v tom nevyznám, poradíte? případně jak z toho udělat RSS 2.0?
Jozin
Profil *
Ahoj,

tak jsem si dal tu práci a zprovoznil to :-D.

hned v prvním řádku to hlásá chybu: "Neuzavřený token" a to je jednoduché... jak máš <?xml, tak na konci řádku je "? >" a má tam být "?>", stačí tahle změna a pojede to ;).

Jozin.
zedna
Profil
Ale když to tak mám, tak se vyskytne jiná chyba:

Zpracování XML nebylo úspěšné: syntaktická chyba (řádek č. 5, znak č. 9)

Chyba:well-formedness constraint: entity declared
Specifikace:www.w3.org/TR/REC-xml/#wf-entdeclared

 2: <rss version="0.91">
  3: <channel>
  4: 	<item>
  5: 	<title>Z&aacute;kladn&iacute; syst&eacute;mov&eacute; funkce</title>
  6: 	<postedon>2011-01-17 12:59:24</postedon>
  7: 	<link>http://cmsss.all4all.cz/modules.php?name=news&amp;file=news_archive&amp;func=readarticle&amp;id=17</link>
  8: 	<story>[U]U�ivatelsk&eacute; funkce:[/U]


mám tam očividně problém s nějakýma entitama ale nepodařilo se mi je nahradit

našel jsem tady na to diskuzi ale asi už je mrtvá a navíc odtud mi jejich rady nepomohly
Jozin
Profil *
Ahoj,

tak samozřejmě, že může být dál chyba... nemám tu tvoji databázi :).

$db je instancí PDO, mysqli nebo máš svoji třídu?

Co vidím, tak to v <story> má jiné kódování a tak se ještě blbě zeptám: "Jaké máš kódování v db a jaké na stránce?"

Jozin.
zedna
Profil
ten text mám typ blob (BINARY) jinak DB mám jako UTF8 a web taky
pro $db mám vlastní třídu ale jinde funguje bez problémů, takže tady by chyba být neměla
zedna
Profil
nakonec jsem to vyřešil takhle
Kcko
Profil
zedna:
Docela zvláštní "třída". Hlavně to echování uvnitř metody, která má ukládat a pak ten destructor.
zedna
Profil
taky mi to přišlo divné ale zkusil jsem a chodí to bez problémů

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: