| Autor | Zpráva | ||
|---|---|---|---|
| deliQus Profil |
#1 · Zasláno: 5. 1. 2010, 17:26:37
Zdravím, chci se zeptat proč mi toto nebere rss čtečka :-) - > http://osporeni.com/rss.php
|
||
| Chamurappi Profil |
#2 · Zasláno: 5. 1. 2010, 17:30:13 · Upravil/a: Chamurappi
Reaguji na deliQa:
Protože tam je před RSS kousek HTML kódu: <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <xml version="1.0" encoding="utf-8"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> |
||
| Trejpa Profil |
#3 · Zasláno: 5. 1. 2010, 17:31:01
deliQus:
RSS má špatný MIME typ. |
||
| deliQus Profil |
#4 · Zasláno: 5. 1. 2010, 17:36:01
Když tam není:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> Tak nejde diakritika :-( |
||
| deliQus Profil |
#5 · Zasláno: 5. 1. 2010, 17:44:36
Nevíte proč ?
|
||
| Trejpa Profil |
#6 · Zasláno: 5. 1. 2010, 17:55:47 · Upravil/a: Trejpa
deliQus:
Co máš za problém nastavit v PHP MIME typ na "application/rss+xml"? Potom si čtečka vezme kódování z <?xml version="1.0" encoding="utf-8" ?> a máš po starostech. Pokud vím, tak XML deklarace by měla být úplně na začátku XML dokumentu (máš tam odřádkování). |
||
| deliQus Profil |
#7 · Zasláno: 5. 1. 2010, 18:13:18
Nevím, jak to myslíš. :-(
|
||
| mckay Profil |
#8 · Zasláno: 5. 1. 2010, 18:21:32
deliQus:
Než vygeneruješ cokoliv jiného, musíš v php, například pomocí hlaviček, určit MIME typ. Třeba takto:
<?php
header("Content-Type: application/rss+xml"); #pokud to chápu správně
?>
A hned pod to napiš <xml version="1.0" encoding="utf-8"> |
||
| Trejpa Profil |
#9 · Zasláno: 5. 1. 2010, 18:26:45 · Upravil/a: Trejpa
deliQus:
<?php
header("Content-Type: application/rss+xml");
?>Děláš XML a neznáš základy. Prohlížeč (čtečka) pozná typ souboru podle MIME type, které zasílá server. Podle toho rozliší, zda je to stránka, obrázek, RSS nebo něco jiného a provede příslušnou akci (stránku a obrázek zobrazí, PDF pošle do pluginu, neznámé soubory nabídne ke stažení). A protože pro PHP koncovku mají servery obvykle nastaveno, že se má posílat jako HTML stránka ("text/html"), tak je nutné ji přetypovat na XML formát, ve kterém předpokládají soubory právě RSS čtečky. Píše se to s otazníky. V PHP to budeš muset trošku zaonačit, aby se to nechápalo jako PHP příkaz. <?xml version="1.0" encoding="utf-8" ?> |
||
| deliQus Profil |
#10 · Zasláno: 5. 1. 2010, 18:41:07
Když tam dám
<?php
header("Content-Type: application/rss+xml");
?>Tak se mi vypíše jen kód a diakritika přesto nejde. Můj skript, který generuje rss: <?php
include ("config.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se pripojit k MySQL: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
?>
<xml version="1.0" encoding="utf-8">
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>osporeni.com</title>
<link>http://www.osporeni.com/</link>
<webMaster>info@osporeni.com (Finanční portál)</webMaster>
<category>finance, spoření, spořící účty, termínované účty, stavební spoření, penziní připojištění</category>
<docs>http://backend.userland.com/rss</docs>
<lastBuildDate><?php echo gmdate("D, d M Y H:i:s")." GMT"; ?></lastBuildDate>
<atom:link href="http://www.osporeni.com/rss.php/" rel="self" type="application/rss+xml" />
<image>
<url>http://www.osporeni.com/graphics/mini_title.gif</url>
<title>osporeni.com</title>
<link>http://www.osporeni.com/</link>
</image>
<?php
$res = mysql_query("SELECT * FROM `clanky` order by id DESC");
while($rec = mysql_fetch_array($res)) {
?>
<item>
<title><?php echo $rec["nadpis"]; ?></title>
<link>http://www.osporeni.com/clanky&id=<?php echo $rec["id"]; ?>/</link>
<guid>http://www.osporeni.com/clanky&id=<?php echo $rec["id"]; ?>/</guid>
<description><?php echo htmlspecialchars(strip_tags($rec["text"])); ?></description>
<pubDate><?php echo $rec["datum"]; ?></pubDate>
</item>
<?php
}
?> |
||
| mckay Profil |
#11 · Zasláno: 5. 1. 2010, 18:50:22
deliQus:
Kódování, soubor, databáze musí mít správně nastavené kódování. Zajisti, aby soubor byl na utf-8, to samé databáze i kód. |
||
| Trejpa Profil |
#12 · Zasláno: 5. 1. 2010, 18:59:21
deliQus:
Takto nějak to máš zapsané a nefunguje to? <?php
header("Content-Type: application/rss+xml");
include ("config.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se pripojit k MySQL: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
?>Pro správnou funkci tam ty otazníky prostě být musí. <?xml version="1.0" encoding="utf-8"?> |
||
| deliQus Profil |
#13 · Zasláno: 5. 1. 2010, 18:59:54
to rss mi právě nějak nejde, vše je jinak v utf-8
|
||
| deliQus Profil |
#14 · Zasláno: 5. 1. 2010, 19:04:32 · Upravil/a: deliQus
Parse error: syntax error, unexpected T_STRING in /var/www/web5/osporeni.com/osporeni.com/rss.php on line 7 ( to je <?xml version="1.0" encoding="utf-8"?> )
|
||
| Trejpa Profil |
#15 · Zasláno: 5. 1. 2010, 19:08:52 · Upravil/a: Trejpa
deliQus:
Tak ještě jednou a důrazně: V PHP to budeš muset trošku zaonačit, aby se to nechápalo jako PHP příkaz. Třeba to vypiš pomocí echo. <?php echo '<?xml version="1.0" encoding="utf-8" ?>'; ?> |
||
| deliQus Profil |
#16 · Zasláno: 5. 1. 2010, 19:27:11
No, tak teď to dělá to co jsem říkal předtím, diakritika nejde, a vypíše se jen kód
|
||
| Trejpa Profil |
#17 · Zasláno: 5. 1. 2010, 19:53:02 · Upravil/a: Trejpa
deliQus:
Pořád máš na začátku mezeru a odřádkování. Takto si to dej na úplný začátek toho souboru a bude to fungovat: <?php
header("Content-Type: application/rss+xml");
echo '<?xml version="1.0" encoding="utf-8" ?>';
// ... ostatní PHP příkazy
// ... a potom zbytek dokumentu, pochopitelně bez xml deklarace
?>Kromě napojení na databázi jsem to zkopíroval (výsledek) a funguje to (EDIT: opravena chyba v souboru, viz [#19]). |
||
| deliQus Profil |
#18 · Zasláno: 5. 1. 2010, 20:01:36
V Mozille to vypadá, že to jde, v IE nejde nic, a v Google Chrome to vypíše jen kód a nejde diakritika
|
||
| Trejpa Profil |
#19 · Zasláno: 5. 1. 2010, 20:25:56
deliQus:
Měl jsi chybu v RSS, kterou jsem tam omylem také zkopíroval (neuzavření značek <channel> a <rss>). Teď to jede. Firefox, IE, Opera a Safari zobrazí správně. Chrome RSS neumí (jen vypíše, například: www.novinky.cz/rss/). Zkus si to třeba ze stránky. |
||
| deliQus Profil |
#20 · Zasláno: 5. 1. 2010, 20:36:28
Tak jsem uzavřel rss a channel, a jde to :-) jen ten chrome zobrazí jen kód :-)
|
||
|
Časová prodleva: 16 let
|
|||
0