![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 19.10.2006 Skąd: Irlandia Ostrzeżenie: (0%) ![]() ![]() |
Witam forum
musze zrobi prosciutki agregator rss na stronke www mam taki skrypt i jakikolwiek adres kanalu nie podam zawsze wypisuje: Nie mozna połšczyć się z adresem. nie jestem biegly w php'ie na tyle zeby szybko wychwycic blad jesli ktos by mogl rzucic okiem bede wdzieczny Kod <?php
$czas = 30; // Co ile ma być aktualizacja $folder = "rss/"; // Adres folderu, w którym znajdować się będą pliki z newsami. $adres = "http://www.roob.pl/backend.php"; // Adres URL do kanału RSS $nazwa_kanalu = "moj wlasny kanal | Wiadomosci ze swiata IT"; // 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>"; } ?> |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:48 |