-
RSS nincs ékezet
sziasztok van egy RSS-es oldalam amin nem jelenek meg az ékezetek mi lehet a gondja? RSS címe: hxxp://elitgamer.net/rss.xml
használt kód:
Kód:
<?php
header ("Content-type: text/xml");
define('_VALID_INCLUDE', TRUE);
$ispopup = "1";
$isrss = "1";
include "core.php";
defined('_VALID_CRINC') or die();
echo ("<?xml version=\"1.0\" encoding=\"ISO-8859-2\"?>
<rss version=\"2.0\">");
?>
<channel>
<title><?echo "$sitename"?> RSS Feed</title>
<?php
$result = mysql_query("SELECT * FROM ccms_news ORDER BY id DESC limit 10");
while ($row = mysql_fetch_array ($result)) {
//$text = iconv("US-ASCII","US-ASCII//IGNORE", $row[prev_news]);
$title = mb_convert_encoding($row[title],"HTML-ENTITIES","UTF-8");
$text = mb_convert_encoding($row[prev_news],"HTML-ENTITIES","UTF-8");
$hircime=strtolower(basename($row[title]));
$csere = array (
"á" => "a",
"ä" => "a",
"é" => "e",
"í" => "i",
"ó" => "o",
"ö" => "o",
"ő" => "o",
"ú" => "u",
"Ú" => "u",
"ü" => "u",
"ű" => "u",
" " => "_",
"?" => "",
"!" => "",
);
$seourl = strtr($hircime, $csere);
$pub_date = date('D, j M Y H:i:s A', $row[timestamp]);
if (!$row[timestamp]) {
$dateposted = $row[date];
} else {
$dateposted = $row[timestamp];
}
echo ("<item>
<title>$title</title>
<description>$text</description>
<link>http://elitgamer.net/hir/$row[id]/$seourl</link>
<pubDate>$pub_date</pubDate>
</item>");
}
mysql_free_result($result);
?>
</channel>
</rss>
-
re: RSS nincs ékezet
A script lecseréli az ékezetes karaktereket ($csere tömb tartalma). Esetleg ezért? :)
Javítás:
Bocs, kicsit figyelmetlen vagyok, ez az url neveket csinálja csak!
Nincs más ötletem, mint hogy a mb_convert_encoding() függvény ront el valamit. Esetleg próbáld ki, hogy nélküle mit csinál.
Adatbázisban milyen kódolásúak az adatok? Szerintem olyannal kéne egyszerűen megjeleníteni is.
-
re: RSS nincs ékezet
ne HTML-ENTITIES -t írj od ahova van írva, hanem ISO-8859-2 -t
Ha problémát okoznak a HTML tagek, akkor jöhet a strip_tags(), vagy a htmlspeciachars()
gondolom a DB UTF a kimenet ISO, ezért kell konvertálni.
kieg: ha nem megy akkor az mb_internal_encoding() beállítása is segíthet
-
re: RSS nincs ékezet
Ha a lekérés eredménye még jó (ezt kiiratva ellenőrizni kellene), akkor csak a konvertálással lehet gond.
Ha jól értelmezem, akkor ilyesmit szeretnél:
$title = html_entity_decode($row[title]);
$text = html_entity_decode($row[prev_news]);
-
re: RSS nincs ékezet
Ha UTF-8-ban vannak meg az adatok, teljesen felesleges konvertálgatni őket RSS-hez, csak át kell írni a fejlécét ISO-8859-2 -ról UTF-8 -ra (és átállítani esetleg a fájl karakterkódolását is), és kész. A HTML tagokat pedig leírták hogy érdemes szűrni.
U.i. mivel az RSS egy külön oldal, így szerintem akkor is nyugodtan lehet UTF-8, ha esetleg máshol latin2-t használsz, ha már egyszer a db UTF-8.
-
re: RSS nincs ékezet
megvan köszi a segítséget mindenkinek:001_smile: