Skocz do zawartości

Błąd przy czytaniu RSS


Nx

Rekomendowane odpowiedzi

Witam :)

 

Mam taki mały problem gdy chcę czytać plik rss ze strony http://rss.gazeta.pl/pub/rss/wiadomosci.xml (skrypt pobrałem ze strony www.hotscripts.pl) otóż w pliku rss.php mam coś takiego:

 

<?php

  #===========================================
  # Silnik tego skryptu zapożyczony został z czytnika RSS w wersji PHP z
  # oprogramowania RSS GET, oryginalna wersja programu na stronie: http://www.aarondunlap.com
  #===========================================

  $czas = 30; // Co ile ma być aktualizacja
  
  $folder = "rss/"; // Adres folderu, w którym znajdować się będą pliki z newsami.
  
  $adres = "http://rss.gazeta.pl/pub/rss/wiadomosci.xml"; // Adres URL do kanału RSS
  $nazwa_kanalu = "Wiadomosci"; // Tytuł kanału RSS
  $liczba = 10; // Ilośc nagłówków newsów, które mają być wyswietlane
  $target = "_blank"; // Opcja target="" dla newsów, możliwe: "_self" oraz "_blank"
  $autoupdate = TRUE;
  $trunc = FALSE;
  $delim = FALSE;
  
  if (isset($_GET['rssHeadline'])) { $rssHeadline = $_GET['rssHeadline'];}
  $basefile = $folder;
  $folder .= md5($adres).".htm"; // Przygotowywanie nazw plików dla danego kanału

  #==========================
  # Operacje związane ze sprawdzaniem aktualności nagłówków w pliku tekstowym
  #==========================

  if (($czas > 0) && (is_file($folder)) && (((time()-filemtime($folder)) < ($czas * 60)))) {
      include $folder;
    $time = floor((time()-filemtime($folder)) / 60); // Sprawdza ile minut temu plik był aktualizowany
       
  } elseif (@fopen($adres,"r")) { // Sprawdza czy ma dostęp do kanału RSS

        #==========================
      # Operacja związane z dodawaniem nowego nagłówka do pliku
      #==========================

      $rssHandle = fopen($adres,"r"); // Otwiera plik kanału RSS

      while (!feof($rssHandle)) {
          $rssData .= fgets($rssHandle);
      }

      #==========================
      # Przygotowywanie newsa do włączenia do pliku
      #==========================
      $tag = "item ";
      $rssData =  preg_replace("/<" . $tag . "(.|\s)*?>/","<item>",$rssData);
      $rssData = chop($rssData); // Usuwanie pustych spacji z końca linijek   
      $rssData = ereg_replace("[\r,\n]", "", $rssData); // Usuwwanie pustych linijek
      $rssData = strstr($rssData,"<item>"); // Usuwanie wszystie przez <item>.

      #==========================
      # Usuwanie zbędnych elemntów tak aby okrojona zawartość mogła zostać zapisana w pliku

      # Tagi <description></description> zostają pominięte
      #==========================      
      $tags_and_content_to_strip = Array("description");

      foreach ($tags_and_content_to_strip as $tag) {
           $rssData = preg_replace("/<" . $tag . ">(.|\s)*?<\/" . $tag . ">/","",$rssData);
      }

      $rssData = str_replace("<item>","", $rssData); // usuwanie tagu <item>
      $rssData = urldecode($rssData); // Zamiana wszystkich: %20 na spacje.
      $rssData = str_replace(strstr("</channel>",$rssData),"",$rssData);
      $rssArray = explode("</item>",$rssData); // Tworzenie tablicy z nagłówkami
  
        $title = array();
      $link = array();

      #==========================
      # Ten mechanizm tworzy tablice dla linków oraz nagłówków
      #==========================  
      $x = 0;
      while($x < $liczba) {
          $link[$x] = strstr($rssArray[$x],"<link>"); // usuwanie wszystkiego przed <link>
        $link[$x] = ereg_replace("<link>","",$link[$x]); 
        $link[$x] = str_replace(strstr($link[$x],"</link>"),"",$link[$x]);
         $link[$x] = trim($link[$x]);
        $title[$x] = strstr($rssArray[$x],"<title>");
          $title[$x] = ereg_replace("<title>","",$title[$x]); // Usuwanie <title> z części tytułu newsa
          $title[$x] = str_replace(strstr($title[$x],"</title>"),"",$title[$x]); //  Usuwanie </title> oraz wszystkiego poza nim
          $title[$x] = trim($title[$x]);
        
        if ($trunc != FALSE) { $title[$x] = str_replace(substr($title[$x],$trunc),"",$title[$x]); }
        if ($delim != FALSE) { $title[$x] = str_replace(strstr($title[$x],$delim),"",$title[$x]); }
        
            if ($title[$x] == "") { $liczba = $x; break; } // Gdy już nie ma nagłówków zmienna $liczba przyjmuje wartość maksumalną.
        $x++;
      }

      #==========================
      # Zapis do pliku
      #==========================
      $fp = fopen($folder, "w+");
      $x=0;  
      fwrite($fp,"<b><span class=\"displayname\">$nazwa_kanalu</span></b> \n"); // zapisywanie do pliku

      while ($x < $liczba) { // ta pętla zapisuje każdy link osobno.
          fwrite($fp,"<br>\n-<a class=\"headlinellink\" target=\"$target\" href=\"$link[$x]\">$title[$x]</a>");
        $x++;
      }
     fclose($fp);
     include $folder;

} else { 
    #==========================
    # Zwracanie błędu gdy podany adres jest błędny.
    #==========================
    echo "<b>Nie mozna połączyć się z adresem: $adres. </b>";

}

?>

 

Mam utworzony folder RSS i nadałem mu CHMOD 777

 

A przy próbie połączenia rss wyskakuje coś takiego

 

Nie mozna połączyć się z adresem: http://rss.gazeta.pl/pub/rss/wiadomosci.xml

 

Wiecie co jest żle ?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...