/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
vise andres RSS på min egen side
Fra : Jesper Schultz


Dato : 09-09-08 15:30

Hej,

Jeg er på jagt efter en løsning til min hjemmeside, hvor jeg kan
vise/indsætte indholdet fra RSS-feeds.

Jeg har fundet flere bud på nettet, men ingen af dem har opfyldt
de kriterier jeg har.

Det eneste jeg vil have vist er:

Tid og overskrift 1
Tid og overskrift 2
Tid og overskrift 3

osv. ned til 10

Jeg ønsker ikke billeder, teasertekst eller noget andet fancy,
kun overskriften og evt. tidspunktet for hvornår nyheden er fra.
Ligeledes vil jeg også kunne definere, at jeg max. ønsker de
første 100 tegn i overskriften.

I princippet ville det allerbedste være at kunne copy-paste noget
kode, hvor man blot skal udskifte linket til RSS-filen.
Alternativt et program hvor man man selv kan definere de
vigtigtste parametre ligesom
http://www.rss-info.com/en_rssinclude-simple.html (det kan dog
ikke fjerne teaser-teksten, eller de få ting jeg ønsker)

Skal jeg finde løsningen i PHP, Javascript, eller kan man lave
det i ren HTML?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Storm (09-09-2008)
Kommentar
Fra : Dan Storm


Dato : 09-09-08 17:36

Jesper Schultz skrev:
> Hej,
>
> Jeg er på jagt efter en løsning til min hjemmeside, hvor jeg kan
> vise/indsætte indholdet fra RSS-feeds.

Hvad har du at gøre med? Har du simplexml eller nogle andre biblioteker
som gør arbejdet nemmere? Eller skal det manuelt parses?


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jesper Schultz (10-09-2008)
Kommentar
Fra : Jesper Schultz


Dato : 10-09-08 08:11

> Hvad har du at gøre med? Har du simplexml eller nogle andre biblioteker
> som gør arbejdet nemmere? Eller skal det manuelt parses?

Jeg er ikke helt sikker på at jeg forstår dit spørgsmål, men de RSS som jeg
gerne vil vise er eks.

http://borsen.dk/newsfeed/rss/?categoryId=1

http://www.business.dk/section/nyhedsoversigt/&template=rss&mime=xml

http://www.berlingske.dk/section/nyhedsoversigt/&template=rss&mime=xml



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (10-09-2008)
Kommentar
Fra : Dan Storm


Dato : 10-09-08 08:18

Jesper Schultz skrev:
>> Hvad har du at gøre med? Har du simplexml eller nogle andre biblioteker
>> som gør arbejdet nemmere? Eller skal det manuelt parses?
>
> Jeg er ikke helt sikker på at jeg forstår dit spørgsmål, men de RSS som jeg
> gerne vil vise er eks.

Send lige et link til din phpinfo();

Tip?
<?php
   echo phpinfo();
?>

>
> http://borsen.dk/newsfeed/rss/?categoryId=1
>
> http://www.business.dk/section/nyhedsoversigt/&template=rss&mime=xml
>
> http://www.berlingske.dk/section/nyhedsoversigt/&template=rss&mime=xml
>
>
>


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jesper Schultz (10-09-2008)
Kommentar
Fra : Jesper Schultz


Dato : 10-09-08 12:49

> Send lige et link til din phpinfo();

http://jesperschultz.dk/info.php

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (10-09-2008)
Kommentar
Fra : Dan Storm


Dato : 10-09-08 14:20

Jesper Schultz skrev:
>> Send lige et link til din phpinfo();
>
> http://jesperschultz.dk/info.php
>

Super :D Du kan bare slette den igen.

Umiddelbart ville jeg havde brugt cURL til at hente indholdet af de
ønskede feeds, men da du ikke har det på webserveren og safe_mode er sat
til on, så skal vi nok have gang i noget fsockopen.

Jeg har lavet denne funktion:

function getRSSFeed($settings)
{
   $url = parse_url($settings["url"]);

   $settings["headLen"] = (isset($settings["headLen"])) ?
$settings["headLen"] : 100;
   $settings["maxPosts"] = (isset($settings["maxPosts"])) ?
$settings["maxPosts"] : 0;

   $host = $url["host"];
   $page = $url["path"].$url["query"];

   $response = "";

   $fp = fsockopen($host, 80, $errno, $errstr, 30);
   if (!$fp)
   {
   return "$errstr ($errno)<br />\n";
   }
   else
   {
   $out = "GET ".$page." HTTP/1.1\r\n";
   $out .= "Host: ".$host."\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp, $out);
   while (!feof($fp))
   {
$response .= fgets($fp, 128);
   }
   fclose($fp);
   }


   $start = strpos($response, "<?xml version=\"1.0\"");
   $slut = (strlen($response)- strpos($response, "</rss>") - 6) * -1;

   $xml = trim(substr($response, $start, $slut));

   $parsed = new SimpleXMLElement($xml);

   $news = array();
   $tmp = array();
   $i = 0;

   foreach($parsed->channel->item as $value)
   {
      $i++;

      $tmp["title"] = utf8_decode($value->title);
      if(strlen($tmp["title"]) > $settings["headLen"])
         $tmp["title"] = substr($tmp["title"], 0, $settings["headLen"]-3)."...";


      $tmp["pubDate"] = $value->pubDate;
      $tmp["link"] = $value->link;
      array_push($news, $tmp);

      if($i == $settings["maxPosts"])
         break;
   }

   if(count($news) == 0)
      return false;

   return $news;


}

Den bruges således:

$feed["url"] = "urlen"; // URL til dit feed
$feed["headLen"] = 100; //Overskriftslængden - standard er 100
$feed["maxPosts"] = 5; //antal nyheder du vil have - standard er 5


$fetched = getRSSFeed($feed);
foreach($fetched as $value)
{
   echo $value["title"]; //Overskriften
   echo $value["pubDate"]; //Tiden
   echo $value["link"]; //Linket
}

Men funktionen ovenfor virker kun på RSS 2.0 feeds og ikke Atom feeds...






--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jesper Schultz (12-09-2008)
Kommentar
Fra : Jesper Schultz


Dato : 12-09-08 09:20

>    $slut = (strlen($response)- strpos($response, "</rss>") - 6) * -1;

Hej Dan,

Tak for dit fantastiske input.

Jeg har copypastet det ind og kun erstattet men en URL.

Jeg får en fejl i linje 36, så svarer til øverste linje i dette reply.

Parse error: syntax error, unexpected T_STRING in
/customers/jesperschultz.dk/jesperschultz.dk/httpd.www/starttest.php on line
36

Kan du umiddelbart gennemskue hvad der kan være galt?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (12-09-2008)
Kommentar
Fra : Dan Storm


Dato : 12-09-08 12:04

> Jeg får en fejl i linje 36, så svarer til øverste linje i dette reply.
>
> Parse error: syntax error, unexpected T_STRING in
> /customers/jesperschultz.dk/jesperschultz.dk/httpd.www/starttest.php on line
> 36
>
> Kan du umiddelbart gennemskue hvad der kan være galt?
>

Kan du ikke prøve at vise hele dit script?
Det er lidt svært at vurdere ud fra den ene linie.



--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jesper Schultz (12-09-2008)
Kommentar
Fra : Jesper Schultz


Dato : 12-09-08 13:53


> Kan du ikke prøve at vise hele dit script?
> Det er lidt svært at vurdere ud fra den ene linie.
>

Her er hele filen som den ser ud (har omdøbt php til txt):

http://jesperschultz.dk/starttest.txt

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (12-09-2008)
Kommentar
Fra : Dan Storm


Dato : 12-09-08 14:35

Jesper Schultz skrev:
>> Kan du ikke prøve at vise hele dit script?
>> Det er lidt svært at vurdere ud fra den ene linie.
>>
>
> Her er hele filen som den ser ud (har omdøbt php til txt):
>
> http://jesperschultz.dk/starttest.txt
>

Problemet ligger i at du bare har taget det jeg har skrevet, kopieret og
brugt.

Hvis du vil have noget at kopiere, så skal du prøve det her:

<?php

function getRSSFeed($settings)
{
   $url = parse_url($settings["url"]);

   $settings["headLen"] = (isset($settings["headLen"])) ?
   $settings["headLen"] : 100;
   $settings["maxPosts"] = (isset($settings["maxPosts"])) ?
   $settings["maxPosts"] : 0;

   $host = $url["host"];
   $page = $url["path"].$url["query"];

   $response = "";

   $fp = fsockopen($host, 80, $errno, $errstr, 30);
   if (!$fp)
   {
      return "$errstr ($errno)<br />\n";
   }
   else
   {
      $out = "GET ".$page." HTTP/1.1\r\n";
      $out .= "Host: ".$host."\r\n";
      $out .= "Connection: Close\r\n\r\n";

      fwrite($fp, $out);
      while (!feof($fp))
      {
         $response .= fgets($fp, 128);
      }

      fclose($fp);
   }


   $start = strpos($response, "<?xml version=\"1.0\"");
   $slut = (strlen($response)- strpos($response, "</rss>") - 6) * -1;

   $xml = trim(substr($response, $start, $slut));

   $parsed = new SimpleXMLElement($xml);

   $news = array();
   $tmp = array();
   $i = 0;

   foreach($parsed->channel->item as $value)
   {
      $i++;

      $tmp["title"] = utf8_decode($value->title);
      if(strlen($tmp["title"]) > $settings["headLen"])
      $tmp["title"] = substr($tmp["title"], 0, $settings["headLen"]-3)."...";


      $tmp["pubDate"] = $value->pubDate;
      $tmp["link"] = $value->link;
      array_push($news, $tmp);

      if($i == $settings["maxPosts"])
      break;

   }

   if(count($news) == 0)
      return false;

   return $news;


}



$feed["url"] = "http://borsen.dk/newsfeed/rss/?categoryId=1";
$feed["headLen"] = 100;
$feed["maxPosts"] = 5;

$fetched = getRSSFeed($feed);
foreach($fetched as $value)
{
   echo $value["title"]."<br />";
   echo $value["pubDate"]."<br />";
   echo $value["link"]."<br />";
}

?>

Men hvis du ikke forstår at implementere ovenstående, så er det jo ikke
til megen hjælp...


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jesper Schultz (13-09-2008)
Kommentar
Fra : Jesper Schultz


Dato : 13-09-08 12:04

Glimrende, så virker det.

Så skal jeg vel til at kigge på noget CSS.

1000 tak for hjælpen so far

God weekend

MVH
Jesper

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kim Schmidt Wind (11-09-2008)
Kommentar
Fra : Kim Schmidt Wind


Dato : 11-09-08 17:17

Jesper Schultz wrote in dk.edb.internet.webdesign.serverside.php:
> Hej,
>
> Jeg er på jagt efter en løsning til min hjemmeside, hvor jeg kan
> vise/indsætte indholdet fra RSS-feeds.
>
> Jeg har fundet flere bud på nettet, men ingen af dem har opfyldt
> de kriterier jeg har.
>
> Det eneste jeg vil have vist er:
>
> Tid og overskrift 1
> Tid og overskrift 2
> Tid og overskrift 3
>
> osv. ned til 10
>
> Jeg ønsker ikke billeder, teasertekst eller noget andet fancy,
> kun overskriften og evt. tidspunktet for hvornår nyheden er fra.
> Ligeledes vil jeg også kunne definere, at jeg max. ønsker de
> første 100 tegn i overskriften.
>
> I princippet ville det allerbedste være at kunne copy-paste noget
> kode, hvor man blot skal udskifte linket til RSS-filen.
> Alternativt et program hvor man man selv kan definere de
> vigtigtste parametre ligesom
> http://www.rss-info.com/en_rssinclude-simple.html (det kan dog
> ikke fjerne teaser-teksten, eller de få ting jeg ønsker)
>
> Skal jeg finde løsningen i PHP, Javascript, eller kan man lave
> det i ren HTML?
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


Hej Jesper

Hvis du vil have mere så se her

<script
src="http://www.bold.dk/nyt/avis.php?nn=10&key=DK&lo=1&wi=1&tf=1"
type="text/javascript"></script>

Den giver dig de seneste 10 nyheder på dansk.
Du kan selv sætte det op. Men læse lige der regler her
http://www.bold.dk/nyt/faaavis.php

Kim

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper Schultz (11-09-2008)
Kommentar
Fra : Jesper Schultz


Dato : 11-09-08 19:43


> Den giver dig de seneste 10 nyheder på dansk.
> Du kan selv sætte det op. Men læse lige der regler her
> http://www.bold.dk/nyt/faaavis.php
>
> Kim

Hej Kim,

Tak for det. Bare alle der lavede RSS tilbød dette, så slap jeg for et
større kodeprojekt... Men jeg er meget overrasket over så meget hjælp
man kan finde på html.dk

tak / Jesper

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408918
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste