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: 13 let
|
0