---
title: "Kod till en enkel RSS-läsare?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/137252-kod-till-en-enkel-rss-läsare"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Bire"
published: "2005-11-09T11:59:57.000Z"
updated: "2007-02-04T19:23:04.000Z"
replies: 12
views: 812
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/137252-kod-till-en-enkel-rss-läsare"
---

# Kod till en enkel RSS-läsare?

## #1 — Bire, 2005-11-09T11:59Z

Behöver en mycket enkel kodsnutt som läser RSS... En läsare alltså som jag kan klistra in på en websida.

Any tips?

Permalänk: https://www.webforum.nu/p/137252

## #2 — Bire, 2005-11-09T13:53Z

Nu har jag hittat nått som funkar:

```
<?php
/*  PHP RSS Reader v1.1
    By Richard James Kendall 
    Bugs to [email]richard@richardjameskendall.com[/email] 
    Free to use, please acknowledge me 
    
    Place the URL of an RSS feed in the $file variable.
       
       The $rss_channel array will be filled with data from the feed,
       every RSS feed is different by by and large it should contain:
       
       Array {
           [TITLE] = feed title
           [DESCRIPTION] = feed description
           [LINK] = link to their website
           
           [IMAGE] = Array {
                       [URL] = url of image
                       [DESCRIPTION] = alt text of image
                   }
           
           [ITEMS] = Array {
                       [0] = Array {
                               [TITLE] = item title
                               [DESCRIPTION] = item description
                               [LINK = a link to the story
                           }
                       .
                       .
                       .
                   }
       }
       
       By default it retrives the Reuters Oddly Enough RSS feed. The data is put into the array
       structure so you can format the information as you see fit.
*/
set_time_limit(0);

$file = "http://www.nyhetsportalen.se/static/export_1065.xml";

$rss_channel = array();
$currently_writing = "";
$main = "";
$item_counter = 0;

function startElement($parser, $name, $attrs) {
       global $rss_channel, $currently_writing, $main;
       switch($name) {
           case "RSS":
           case "RDF:RDF":
           case "ITEMS":
               $currently_writing = "";
               break;
           case "CHANNEL":
               $main = "CHANNEL";
               break;
           case "IMAGE":
               $main = "IMAGE";
               $rss_channel["IMAGE"] = array();
               break;
           case "ITEM":
               $main = "ITEMS";
               break;
           default:
               $currently_writing = $name;
               break;
       }
}

function endElement($parser, $name) {
       global $rss_channel, $currently_writing, $item_counter;
       $currently_writing = "";
       if ($name == "ITEM") {
           $item_counter++;
       }
}

function characterData($parser, $data) {
    global $rss_channel, $currently_writing, $main, $item_counter;
    if ($currently_writing != "") {
        switch($main) {
            case "CHANNEL":
                if (isset($rss_channel[$currently_writing])) {
                    $rss_channel[$currently_writing] .= $data;
                } else {
                    $rss_channel[$currently_writing] = $data;
                }
                break;
            case "IMAGE":
                if (isset($rss_channel[$main][$currently_writing])) {
                    $rss_channel[$main][$currently_writing] .= $data;
                } else {
                    $rss_channel[$main][$currently_writing] = $data;
                }
                break;
            case "ITEMS":
                if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
                    $rss_channel[$main][$item_counter][$currently_writing] .= $data;
                } else {
                    //print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");
                    $rss_channel[$main][$item_counter][$currently_writing] = $data;
                }
                break;
        }
    }
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);

// output as HTML
print ("<html><head><title>News</title></head><body>");
if (isset($rss_channel["ITEMS"])) {
    if (count($rss_channel["ITEMS"]) > 0) {
        for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) {
            print ("<a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\" target=\"_blank\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</a>");
            print ("&nbsp;&nbsp;");
        }
    } else {
        print ("<b>There are no articles in this feed.</b>");
    }
}
print ("</body></html>");
?>
```

Men hur includerar jag denna fil i en php-fil?

Permalänk: https://www.webforum.nu/p/1704270

## #3 — silfver, 2005-11-09T13:55Z

Skriv så här: 

```php
<?php
     require "filnamn.php";
?>
```

Permalänk: https://www.webforum.nu/p/1704273

## #4 — Bire, 2005-11-09T14:04Z

Får inte till det.. :(

Permalänk: https://www.webforum.nu/p/1704277

## #5 — silfver, 2005-11-09T14:05Z

Kan du försöka förklara lite bättre så vi kan hjälpa dig? ;)

Permalänk: https://www.webforum.nu/p/1704278

## #6 — Bire, 2005-11-09T14:12Z

Här är en del av koden:

```
		<if condition="$bbuserinfo['userid']">
			<td class="vbmenu_control"><a href="login.php?$session[sessionurl]do=logout&amp;u=$bbuserinfo[userid]" onclick="return log_out()">$vbphrase[log_out]</a></td>
		</if>
	</tr>
	</table>
</div>
<!-- / nav buttons bar -->
<?php
     require "rss.php";
?> 
 
<br />
<br />

<if condition="$show['popups']">
<!-- NAVBAR POPUP MENUS -->
	
	<if condition="$show['searchbuttons']">
```

Permalänk: https://www.webforum.nu/p/1704282

## #7 — silfver, 2005-11-09T14:15Z

Hm. Det verkar som att koden du klistrade in är befintlig php-kod eller vad man ska säga. Då behöver du inte skriva \<?php och ?\> för att inkludera filen... Men gör så att du lägger inkluderingen överst på sidan.

Permalänk: https://www.webforum.nu/p/1704285

## #8 — Pace, 2005-11-09T14:16Z

Ser att det är en html-mall från vBulletin. ;)

Det går inte att klistra in php-kod i en mall, utan det måste antingen läggas i php-filen eller läggas in via så kallade [hooks](http://www.vbulletin.com/docs/html/main/what_is_hook) (som finns i version 3.5.0 och uppåt).

Permalänk: https://www.webforum.nu/p/1704287

## #9 — Bire, 2005-11-09T14:19Z

Utan \<?php och ?\> funkar det inte heller..

Permalänk: https://www.webforum.nu/p/1704291

## #10 — Bire, 2005-11-09T14:20Z

> **Pace skrev:**
>
> Det går inte att klistra in php-kod i en mall, utan det måste antingen läggas i php-filen eller läggas in via så kallade [hooks](http://www.vbulletin.com/docs/html/main/what_is_hook) (som finns i version 3.5.0 och uppåt).

Aha!!

Permalänk: https://www.webforum.nu/p/1704293

## #11 — Denniss, 2007-02-04T13:41Z

Koden funkar alldeles utmärkt. 

Jag undrar om det går att :

1\. lägga in tid/datum när nyheten kommer

2\. få nyheter från flera källor ?

3\. få mellanrum  eller helst ny rad mellan nyheter typ \<br\>

Hur gör man då ? Hur ser koden ut ?

Permalänk: https://www.webforum.nu/p/1932361

## #12 — Denniss, 2007-02-04T13:47Z

Och ett problem till:

om man tex väljer <http://www.redeyeresearch.com/rss/rss.php>

då får man problem med svenska bokstäver .

Någon\`??

Permalänk: https://www.webforum.nu/p/1932362

## #13 — Denniss, 2007-02-04T19:23Z

Ingen

Som kan hjälpa mig ??

Permalänk: https://www.webforum.nu/p/1932444

---

Tråden på webben: https://www.webforum.nu/amne/php/137252-kod-till-en-enkel-rss-läsare
