Ergebnis 1 bis 6 von 6

Thema: rss-reader php script?!?!

  1. #1
    ich-heisse-ich
    Gast

    Standard rss-reader php script?!?!

    tach,
    also hier is der code
    Code:
    <?php
    // #############################################################################
    ShowFeed&#40;"http&#58;//www.chip.de/rss/rss_downloads.xml"&#41;;
    // #############################################################################
    
    function ShowFeed&#40;$RssFeedFile&#41; &#123;
    	$XmlRoot = ParseXmlFile&#40;$RssFeedFile&#41;;
    	if &#40;$XmlRoot&#41; &#123;
    		if &#40;strtolower&#40;$XmlRoot->name&#41; == "rss"&#41; &#123;
    			ShowFeed_RSS&#40;$XmlRoot&#41;;
    		&#125; else if &#40;strtolower&#40;$XmlRoot->name&#41; == "rdf&#58;rdf"&#41; &#123;
    			ShowFeed_RDF&#40;$XmlRoot&#41;;
    		&#125; else if &#40;strtolower&#40;$XmlRoot->name&#41; == "smf&#58;xml-feed"&#41; &#123;
    			ShowFeed_SMFXMLFEED&#40;$XmlRoot, "http&#58;//www.your-smf-forum.tld/", "Forumstitel", "Your SMF..."&#41;;
    		&#125;
    	&#125;
    &#125;
    // #############################################################################
    
    function ShowFeed_RSS&#40;$XmlRoot&#41; &#123;
    	$title = GetFirstChildContentByPath&#40;$XmlRoot, "channel/title"&#41;;
    	$link = GetFirstChildContentByPath&#40;$XmlRoot, "channel/link"&#41;;
    	$desc = GetFirstChildContentByPath&#40;$XmlRoot, "channel/description"&#41;;
    
    	echo "<h2><a href=\"$link\">$title</a></h2>\n";
    	echo "
    
    $desc</p>\n";
    
    	$nodelist = GetChildrenByPathAndName&#40;$XmlRoot, "channel", "item"&#41;;
    	if &#40;!$nodelist&#41; return 0;
    	foreach &#40;$nodelist as $nl&#41; &#123;
    		$title = GetFirstChildContentByName&#40;$nl, "title"&#41;;
    		$link = GetFirstChildContentByName&#40;$nl, "link"&#41;;
    		$desc = GetFirstChildContentByName&#40;$nl, "description"&#41;;
    		$creator = GetFirstChildContentByName&#40;$nl, "author"&#41;;
    		if &#40;!$creator&#41; $creator = GetFirstChildContentByName&#40;$nl, "dc&#58;creator"&#41;;
    		$pubdate = GetFirstChildContentByName&#40;$nl, "pubDate"&#41;;
    		if &#40;!$pubdate&#41; $pubdate = GetFirstChildContentByName&#40;$nl, "dc&#58;date"&#41;;
    		if &#40;$pubdate&#41; $pubdate = strtotime&#40;$pubdate&#41;;
    		if &#40;$pubdate&#41; $pubdate = strftime&#40;"%d.%m.%Y %H&#58;%M&#58;%S", $pubdate&#41;;
    		$out = $creator;
    		if &#40; &#40;$creator != ""&#41; && &#40;$pubdate != ""&#41; &#41; $out .= " @ ";
    		$out .= $pubdate;
    		if &#40;$out != ""&#41; $out = " &#40;$out&#41;";
    
    		echo "\n";
    		echo "
    
    <a href=\"$link\"><h1>$title</h1></a>$out
    $desc</p>\n";
    	&#125;
    	echo "
    \n";
    &#125;
    // #############################################################################
    
    function ShowFeed_RDF&#40;$XmlRoot&#41; &#123;
    	$title = GetFirstChildContentByPath&#40;$XmlRoot, "channel/title"&#41;;
    	$link = GetFirstChildContentByPath&#40;$XmlRoot, "channel/link"&#41;;
    	$desc = GetFirstChildContentByPath&#40;$XmlRoot, "channel/description"&#41;;
    
    	echo "<h2><a href=\"$link\">$title</a></h2>\n";
    	echo "
    
    $desc</p>\n";
    
    	$nodelist = $XmlRoot->children;
    	if &#40;!$nodelist&#41; return 0;
    	foreach &#40;$nodelist as $nl&#41; &#123;
    		$title = GetFirstChildContentByName&#40;$nl, "title"&#41;;
    		$link = GetFirstChildContentByName&#40;$nl, "link"&#41;;
    		$desc = GetFirstChildContentByName&#40;$nl, "description"&#41;;
    		$creator = GetFirstChildContentByName&#40;$nl, "author"&#41;;
    		$creator = GetFirstChildContentByName&#40;$nl, "dc&#58;creator"&#41;;
    		$pubdate = GetFirstChildContentByName&#40;$nl, "pubDate"&#41;;
    		if &#40;!$pubdate&#41; $pubdate = GetFirstChildContentByName&#40;$nl, "dc&#58;date"&#41;;
    		if &#40;$pubdate != ""&#41; $pubdate = strtotime&#40;$pubdate&#41;;
    		$pubdate = strftime&#40;"%d.%m.%Y", $pubdate&#41;;
    		$out = $creator;
    		if &#40; &#40;$creator != ""&#41; && &#40;$pubdate != ""&#41; &#41; $out .= " @ ";
    		$out .= $pubdate;
    		if &#40;$out != ""&#41; $out = " &#40;$out&#41;";
    
    		echo "<hr>\n";
    		echo "
    
    <a href=\"$link\">$title</a>$out
    <blockquote>$desc</blockquote></p>\n";
    	&#125;
    	echo "<hr>\n";
    &#125;
    // #############################################################################
    
    function ShowFeed_SMFXMLFEED&#40;$XmlRoot, $Link, $Title, $Desc&#41; &#123;
    	echo "<h2><a href=\"$Link\">$Title</a></h2>\n";
    	echo "
    
    $Desc</p>\n";
    
    	$nodelist = $XmlRoot->children;
    	if &#40;!$nodelist&#41; return 0;
    	foreach &#40;$nodelist as $nl&#41; &#123;
    		$title = GetFirstChildContentByName&#40;$nl, "subject"&#41;;
    		$link = GetFirstChildContentByPath&#40;$nl, "link"&#41;;
    		$desc = GetFirstChildContentByName&#40;$nl, "body"&#41;;
    		$poster = GetFirstChildContentByPath&#40;$nl, "poster/name"&#41;;
    		$posterlink = GetFirstChildContentByPath&#40;$nl, "poster/link"&#41;;
    		if &#40; &#40;$poster != ""&#41; && &#40;$posterlink != ""&#41; &#41; $poster = "<a href=\"$posterlink\">$poster</a>";
    		$pubdate = GetFirstChildContentByName&#40;$nl, "time"&#41;;
    		$out = $poster;
    		if &#40; &#40;$poster != ""&#41; && &#40;$pubdate != ""&#41; &#41; $out .= " @ ";
    		$out .= $pubdate;
    		if &#40;$out != ""&#41; $out = " &#40;$out&#41;";
    
    		echo "<hr>\n";
    		echo "
    
    <a href=\"$link\">$title</a>$out
    <blockquote>$desc</blockquote></p>\n";
    	&#125;
    	echo "<hr>\n";
    &#125;
    // #############################################################################
    
    function GetAttribByName&#40;$XmlNode, $sName, $bCase = False&#41; &#123;
    	if &#40;!$bCase&#41; $sName = strtolower&#40;$sName&#41;;
    	if &#40;!$bCase&#41; $aAttributes = array_change_key_case&#40;$XmlNode->attributes, CASE_LOWER&#41;;
    	return $aAttributes&#91;$sName&#93;;
    &#125;
    // #############################################################################
    
    function GetChildrenByPathAndName&#40;$XmlRoot, $sPath, $sName, $bCase = False&#41; &#123;
    	$aPath = GetPath&#40;$sPath&#41;;
    	$oRes = array&#40;&#41;;
    	$oNode = $XmlRoot;
    	foreach &#40;$aPath as $p&#41; &#123;
    		$oNode = GetFirstChildByName&#40;$oNode, $p&#41;;
    		if &#40;!$oNode&#41; return False;
    	&#125;
    	foreach &#40;$oNode->children as $c&#41; &#123;
    		if &#40;$bCase&#41; &#123;
    			if &#40;strcmp&#40;$c->name, $sName&#41; == 0&#41; $oRes&#91;count&#40;$oRes&#41;&#93; = $c;
    		&#125; else &#123;
    			if &#40;strcasecmp&#40;$c->name, $sName&#41; == 0&#41; $oRes&#91;count&#40;$oRes&#41;&#93; = $c;
    		&#125;
    	&#125;
    	return $oRes;
    &#125;
    // #############################################################################
    
    function GetChildrenByPath&#40;$XmlRoot, $sPath, $bCase = False&#41; &#123;
    	$aPath = GetPath&#40;$sPath&#41;;
    	$oNode = $XmlRoot;
    	foreach &#40;$aPath as $p&#41; &#123;
    	$oNode = GetFirstChildByName&#40;$oNode, $p, $bCase&#41;;
    		if &#40;!$oNode&#41; return False;
    	&#125;
    	return $oNode->children;
    &#125;
    // #############################################################################
    
    function GetFirstChildContentByPath&#40;$XmlRoot, $sPath, $bCase = False&#41; &#123;
    	$oNode = GetFirstChildByPath&#40;$XmlRoot, $sPath, $bCase&#41;;
    	if &#40;$oNode&#41; return $oNode->content; else return "";
    &#125;
    // #############################################################################
    
    function GetFirstChildByPath&#40;$XmlRoot, $sPath, $bCase = False&#41; &#123;
    	$aPath = GetPath&#40;$sPath&#41;;
    	$oNode = $XmlRoot;
    	foreach &#40;$aPath as $p&#41; &#123;
    		$oNode = GetFirstChildByName&#40;$oNode, $p, $bCase&#41;;
    		if &#40;!$oNode&#41; return False;
    	&#125;
    	return $oNode;
    &#125;
    // #############################################################################
    
    function GetFirstChildContentByName&#40;$oParent, $sName, $bCase = False&#41; &#123;
    	$oNode = GetFirstChildByName&#40;$oParent, $sName, $bCase&#41;;
    	if &#40;$oNode&#41; return $oNode->content; else return "";
    &#125;
    // #############################################################################
    
    function GetFirstChildByName&#40;$oParent, $sName, $bCase = False&#41; &#123;
    	if &#40;count&#40;$oParent->children&#41; < 1&#41; return 0;
    	if &#40;$bCase&#41; $sName = strtolower&#40;$sName&#41;;
    	foreach &#40;$oParent->children as $c&#41; &#123;
    		if &#40;$bCase&#41; &#123;
    			if &#40;strcmp&#40;$c->name, $sName&#41; == 0&#41; return $c;
    		&#125; else &#123;
    			if &#40;strcasecmp&#40;$c->name, $sName&#41; == 0&#41; return $c;
    		&#125;
    	&#125;
    	return False;
    &#125;
    // #############################################################################
    
    function GetPath&#40;$sPath, $iMax = 32&#41; &#123;
    	return split&#40;"/", $sPath, $iMax&#41;;
    &#125;
    // #############################################################################
    
    class XmlElement &#123;
    	var $name;
    	var $attributes;
    	var $content;
    	var $children;
    &#125;;
    // #############################################################################
    
    function ParseXmlFile&#40;$sFileName&#41; &#123;
    	$handle = @fopen&#40;$sFileName, "rb"&#41;;
    	$xml = '';
    	if &#40;!$handle&#41; return False;
    	while &#40;!feof&#40;$handle&#41;&#41; &#123;
    		$xml .= fread&#40;$handle, 4096&#41;;
    	&#125;
    	fclose&#40;$handle&#41;;
    
    	$parser = xml_parser_create&#40;&#41;;
    	xml_parser_set_option&#40;$parser, XML_OPTION_CASE_FOLDING, 0&#41;;
    	xml_parser_set_option&#40;$parser, XML_OPTION_SKIP_WHITE, 1&#41;;
    	xml_parser_set_option&#40;$parser, XML_OPTION_TARGET_ENCODING, "ISO-8859-1"&#41;;
    	xml_parse_into_struct&#40;$parser, $xml, $tags&#41;;
    	xml_parser_free&#40;$parser&#41;;
    
    	$elements = array&#40;&#41;;
    	$stack = array&#40;&#41;;
    	foreach &#40;$tags as $tag&#41; &#123;
    		$index = count&#40;$elements&#41;;
    		if &#40; &#40;$tag&#91;'type'&#93; == "complete"&#41; || &#40;$tag&#91;'type'&#93; == "open"&#41; &#41; &#123;
    			$elements&#91;$index&#93; = new XmlElement;
    			if &#40;isset&#40;$tag&#91;'tag'&#93;&#41;&#41; $elements&#91;$index&#93;->name = $tag&#91;'tag'&#93;;
    			if &#40;isset&#40;$tag&#91;'attributes'&#93;&#41;&#41; $elements&#91;$index&#93;->attributes = $tag&#91;'attributes'&#93;;
    			if &#40;isset&#40;$tag&#91;'value'&#93;&#41;&#41; $elements&#91;$index&#93;->content = $tag&#91;'value'&#93;;
    			if &#40;$tag&#91;'type'&#93; == "open"&#41; &#123;
    			$elements&#91;$index&#93;->children = array&#40;&#41;;
    			$stack&#91;count&#40;$stack&#41;&#93; = &$elements;
    			$elements = &$elements&#91;$index&#93;->children;
    		&#125;
    	&#125;
    		if &#40;$tag&#91;'type'&#93; == "close"&#41; &#123;
    			$elements = &$stack&#91;count&#40;$stack&#41; - 1&#93;;
    			unset&#40;$stack&#91;count&#40;$stack&#41; - 1&#93;&#41;;
    		&#125;
    	&#125;
    	return $elements&#91;0&#93;;
    &#125;
    // #############################################################################
    ?>
    wenn ich es über XAMPP bei localhost teste funktioniert es perfekt.
    aber wenn ich es hochlade, auf meinen webspace. werden die formatierten "daten" nicht angezeigt!

    ihr könnt ja selbst mal testen wie es ist .
    falls jemand eine lösung für das problem hat, soll es hier reinschreiben.

    mfg
    ich-heisse-ich
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ähmm kann es sein das du lokal php5 hast und auf dem server php4

  3. #3
    ich-heisse-ich
    Gast

    Standard

    nee hab ich auch schon überlegt gehabt, aber ich hab 100% php5 auf lokal und server

  4. #4
    Azubi(ne)
    Registriert seit
    19.04.2006
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    werden gar keine daten angezeigt oder nur die 'formatierten' nicht?

    wenn gar keine, kann es an deinem provider liegen, ... bei meinem muss ich auch immer den xml-link hinmailen, damit mir der zugriff auf die jeweilige domain bzw. den jeweiligen link freigeschaltet wird!?

  5. #5
    ich-heisse-ich
    Gast

    Standard

    nichts wurde angezeigt. liegt das vll damit zusammen das ich den feed von einer internetseite genommen habe?

  6. #6
    Azubi(ne)
    Registriert seit
    19.04.2006
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von ich-heisse-ich
    nichts wurde angezeigt. liegt das vll damit zusammen das ich den feed von einer internetseite genommen habe?
    genau das hab ich gemeint ... einen eigenen - sprich der auf deiner domain liegt - würde das script dann wahrscheinlich anzeigen ...

    frag einfach mal deinen provider ...

Ähnliche Themen

  1. RSS-Reader mit JavaScript
    Von Superfunk im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 17.02.2008, 01:12
  2. problem mit card-reader
    Von davidos_no.1 im Forum Computer - Internet Forum
    Antworten: 7
    Letzter Beitrag: 28.06.2007, 16:04
  3. RSS Reader Script
    Von pauel im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 11.04.2007, 08:39
  4. Adobe Reader 7.0 Passwortsperre
    Von Meck im Forum Computer - Internet Forum
    Antworten: 0
    Letzter Beitrag: 12.12.2006, 16:11
  5. Acrobat Reader
    Von mauritius im Forum Computer - Internet Forum
    Antworten: 2
    Letzter Beitrag: 01.06.2003, 22:05

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •