WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Visa RSS på sidan (https://www.wn.se/forum/showthread.php?t=19331)

Roosweb 2007-02-13 23:46

Hej. Om jag har en RSS från aftonbladet till exempel, hur gör jag då för att visa den på en vanlig sida som t.ex. denna om jag hade viljat visa senaste nyheterna på wn.se's startsida hur gör jag det?

martine 2007-02-15 14:02

Du menar hur gör jag för att stjäla aftonbladets nyheter och visa dom på min sida automatiskt??

grazzy 2007-02-15 14:08

Citat:

Originally posted by martine@Feb 15 2007, 15:02
Du menar hur gör jag för att stjäla aftonbladets nyheter och visa dom på min sida automatiskt??

Nu stal jag din quote, dags att ringa advokaterna?

Roosweb, du får använda nåt bibliotek för att parsa rss och skriva ut det på din sida, det finns ett helt gäng för detta, tex magpierss för php. Om dina behov är enkla så har jag skrivit en du kan använda, den finns här: http://grazzy.mjoelkbar.net/rss/rss.zip

martine 2007-02-15 18:19

Citat:

Ursprungligen postat av grazzy
Citat:

Ursprungligen postat av martine
Du menar hur gör jag för att stjäla aftonbladets nyheter och visa dom på min sida automatiskt??

Nu stal jag din quote, dags att ringa advokaterna?

Japp, vänta dig en saftig stämning på ditt bord imorgon!... :P :D

Att använda någons rss som innehåll på sin sida verkar väl annars vara lite väl fräckt (om man nu inte deklarerar var det kommer ifrån och har en bra anledning till att ha det där).

Annars rent tekniskt är det ju inget större problem. Man blir ju lite nyfiken bara vad folk har för planer.

grazzy 2007-02-15 18:28

Ser inte problemet om roosweb vill visa aftonbladets rubriker som en lista med länkar till artiklarna? Det har inte aftonbladet mig veterligen något emot.. om man däremot börjar visa deras bilder och halva artiklarna så kan jag förstå ditt resonemang. Men jag är lite lätt partisk i målet om man säger så.. heh.

martine 2007-02-16 10:36

Jo, visst det finns många bra och motiverade användningar, ser heller inget fel i att ha "Senaste nyheterna från Aftonbladet" med länk till Aftonbladet om de inte har något emot det.

Men vänd på saken också: Om du gjort en rss-feed som manuellt uppdateras med intressanta artiklar så tror inte jag att du skulle bli så glad om någon skräp-/reklam-/linkklicksida använde den som huvudinnehåll för att få upp sina sidor i Google med dynamiskt innehåll utan någon som helst referens till var materialet kommer ifrån…

grazzy 2007-02-16 10:47

Fast nu är det ju inte så RSS funkar i 99% av fallen. Särskilt inte med nyheter. Det är en rubrik och en liten del av artikeln.

Roosweb 2007-02-17 13:55

Jaha är det olagligt att visa nyhetsrubriker så? Hade inte en aning om det och ber om ursäkt i sånna fall, det enda jag vill, är som vissa andra siter har så dom visar de senaste nyhetsrubrikerna, inte stjäla något :/

j0han 2007-02-17 15:35

det är väl inte olaglit? Ange källa bara. Rss finns väl inte för att man inte ska använda dom`?

MattiasA 2007-02-17 15:37

Denna har jag gjort
anropas med GET

lycka till, maila om du får problems
Kod:

<?php
 
set_time_limit(0);
 
$file = $_GET['file'];
 
$rss_channel = array();
$currently_writing = "";
$main = "";
$item_counter = 0;//ändra antalet nyheter, 0 är alla
 
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 "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 "ITEMS":
      if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
        $rss_channel[$main][$item_counter][$currently_writing] .= $data;
      } else {//credits 2 matti4s
      $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 ("<div class=\"ruta\">\n");
 
if(strlen($rss_channel["TITLE"]) > 35)//antal max tecken på rubriken
  $rss_channel["TITLE"] = substr($rss_channel["TITLE"], 0, 32) . '...';//bryt efter 32 och lägg till ...
elseif(strlen($rss_channel["TITLE"]) < 2)//antal min tecken
  $rss_channel["TITLE"] = substr($rss_channel["TITLE"], 0, 2) . '...';//lägg till ...
print ("<h3>" . $rss_channel["TITLE"] . "</h3>\n");
 
if(strlen($rss_channel["DESCRIPTION"]) > 50)
  $rss_channel["DESCRIPTION"] = substr($rss_channel["DESCRIPTION"], 0, 47) . '...';
elseif(strlen($rss_channel["DESCRIPTION"]) < 2)
  $rss_channel["DESCRIPTION"] = substr($rss_channel["DESCRIPTION"], 0, 2) . '...';
print ("<h4>" . $rss_channel["DESCRIPTION"] . "</h4>\n");
 
print ("<ul>\n");
 
if (isset($rss_channel["ITEMS"]))
{
  if (count($rss_channel["ITEMS"]) > 0)
  {
  for($i = 0;$i < count($rss_channel["ITEMS"]);$i++)
  {
    print ("\t<li><a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\" target=\"_blank\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</a>");
    print ("</li>\n");
  }
  }
  else
  print ("<b>There are no articles in this feed.</b>");
}
print ("</ul>\n</div>\n");
?>



Alla tider är GMT +2. Klockan är nu 09:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson