Zum Inhalt springen

rss php umlaute *hilfe*


Gast Hooker
 Teilen

Empfohlene Beiträge

Hey,

ich bin gerade dabei einen rss feed auf einer homepage einzubinden.

klappt auch alles sehr gut, jedoch sobald ich die datei an entsprechender stelle include werden die umlaute falsch dargestellt.

hier klappts:

http://nice2be.net/rss/rssImport.php

hier nicht mehr:

http://nice2be.net/rss/index.php

was mach ich falsch?

hier der code

RSSParser.class.php

<?

// the recording-constants - need to start with a value > 0 !
define ("RSS_CHANNEL", "1");
define ("RSS_IMAGE", "2");
define ("RSS_ITEM", "3");

class RSSParser {

// parser dependant variables
var $objParser;
var $intOnRecording;
var $strLastParsingError;
var $strLastData;

// data dependent variables
var $arrRSSChannel;
var $arrRSSItems;
var $inxRSSItems;



// class constructor
function RSSParser() {

$this->strLastParsingError = array();
$this->arrRSSChannel = array();
$this->arrRSSItems = array();
$this->inxRSSItems = 0;
$this->strLastData = "";
$this->intOnRecording = 0;
$this->objParser = xml_parser_create();

// set the default handlers
xml_set_object($this->objParser, $this);
xml_set_element_handler($this->objParser, "openTag", "closeTag");
xml_set_character_data_handler($this->objParser, "data");

} // constructor



function runRSSParsingProcess ($strXMLCode) {

// parse the given XML-Code
xml_parse($this->objParser, $strXMLCode);

} // runRSSParsingProcess


// parser dependent methods
// ==================================================================

function openTag($parser, $tag, $attr) {

switch ($tag) {

// set the recording flag
case "CHANNEL": $this->intOnRecording = RSS_CHANNEL; break;
case "IMAGE": $this->intOnRecording = RSS_IMAGE; break;
case "ITEM": $this->intOnRecording = RSS_ITEM; break;

} // switch

// handle attributes of tags
switch ($tag) {
case "RSS":
$this->arrRSSChannel["version"] = $attr["VERSION"]; break;
} // switch

} // function openTag(..)




function closeTag($parser, $tag) {

if ($this->intOnRecording == RSS_CHANNEL) {

switch ($tag) {
case "TITLE": $this->arrRSSChannel["title"] = $this->strLastData; break;
case "LINK": $this->arrRSSChannel["link"] = $this->strLastData; break;
case "DESCRIPTION": $this->arrRSSChannel["description"] = $this->strLastData; break;
} // switch

} else if ($this->intOnRecording == RSS_IMAGE) {

switch ($tag) {
case "TITLE": $this->arrRSSChannel["imageTitle"] = $this->strLastData; break;
case "URL": $this->arrRSSChannel["imageURL" ] = $this->strLastData; break;
case "LINK": $this->arrRSSChannel["imageLink" ] = $this->strLastData; break;
} // switch

} else if ($this->intOnRecording == RSS_ITEM) {

switch ($tag) {
case "ITEM": $this->inxRSSItems++; break;
case "TITLE": $this->arrRSSItems[$this->inxRSSItems]["title"] = $this->strLastData; break;
case "LINK": $this->arrRSSItems[$this->inxRSSItems]["link"] = $this->strLastData; break;
} // switch

} // if..else (onRecording)

$this->strLastData = "";

} // function closeTag(..)



function data($parser, $data) {

if ($this->intOnRecording != 0) {
$this->strLastData .= trim($data);
} // if

} // function data(..)




// get methods
// ==================================================================

function getRSSChannel() {
return $this->arrRSSChannel;
} // getRSSChannel()

function getRSSItems() {
return $this->arrRSSItems;
} // getRSSItems()


} // class rssParser

?>

rssImport.php

<?php
// include the parser class
require_once ("RSSParser.class.php");

$rssParser = new RSSParser();

$rssSource = "http://www.immobilienscout24.de/news/rss-feed/";
// $rssSource = "http://www.spiegel.de/schlagzeilen/rss/0,5291,,00.xml";
// $rssSource="http://msdn.microsoft.com/rss.xml";

$rssFile = implode("",file($rssSource));



// start the parsing process
$rssParser->runRSSParsingProcess ($rssFile);

// get the arrays and print the information
$channelInfo = $rssParser->getRSSChannel();
$rssItems = $rssParser->getRSSItems();


foreach ($rssItems as $item) {
echo "<p>";
echo "<a href=\"".$item["link"]."\"target=\"_blank\">";
echo "<span class=\"rssItem\">";
echo $item["title"];
echo "</span>";
echo "</a>";
$count++;
if($count == 5) break;
} // foreach


?>

index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>#</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="874" bgcolor="#EEEEEE"> <table height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="191" bgcolor="#FFE8B0"> <div align="right">
<table width="171" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="171">News</td>
</tr>
<tr>
<td> <?php include ("rssImport.php"); ?> </td>
</tr>
</table>
</div></td>
</tr>
</table></td>
<td bgcolor="#EEEEEE"> </td>
</tr>
</table>
</body>
</html>

Bearbeitet von Hooker
Link zu diesem Kommentar
Auf anderen Seiten teilen

HA! genial!

Vielen Dank!

index.php

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

geändert in

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

schon gehts :D

:icon_rule:

/edit

wer das script verwenden möchte kann das gerne tun.

im original hab ich es hier runtergeladen:

http://www.heise.de/ct/ftp/04/26/238/

Bearbeitet von Hooker
Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Meinung

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Benutzerkonto hast, melde Dich bitte an, um mit Deinem Konto zu schreiben.

Guest
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Vorschau
 Teilen

×
×
  • Neu erstellen...

Wichtige Information

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.