Újra látszódnak a legújabb bejegyzések

2009. január 7., szerda | programozás

Újra látszódnak a DarkRPG bal alsó részén a legújabb [DarkRPG]Blog bejegyzések! Egy ideig apróbb technikai malőr miatt nem listázott oda semmiféle információt a honlap, de végül csak sikerült megoldani a dolgot…

Akit esetleg érdekel, itt található a php kód:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
class o_rss_kulso
	{
	var $rssurl;
	var $cachefile;
	function __construct()
		{
		}
 
	private function url_rol_beolvasas()
		{
		$row="";
		if ($fp = fopen($this->rssurl, "r"))
			{
		  while(!feof($fp))
				{
			  $row .= fgets($fp, 4096);
			  }
			}
		fclose($fp);
		$row=iconv("UTF-8", "iso-8859-2", $row);
		return $row;
		}
 
	private function helyi_filebol_beolvas()
		{
		$f = fopen($this->cachefile, "r");
	  $linesout = fread($f, filesize($this->cachefile));
	  fclose($f);
	  return $linesout;
		}
 
	private function helyi_filba_ment($linesout)
		{
		touch($this->cachefile);
	  $f = fopen($this->cachefile, "w");
	  fwrite($f, $linesout);
	  fclose($f);
		}
 
	private function utolso_x_beolvasasa($itemnum)
		{
	  if ((file_exists($this->cachefile) == false) OR (filemtime($this->cachefile)+3600) < time())
			{// ha több mint 1 órás a cachefájl
		  $row=$this->url_rol_beolvasas();
 
		  if(eregi("<item>(.*)</item>", $row, $rowitem))
				{
			  $item = explode("<item>", $rowitem[0]);
			  for($i = 0; $i < $itemnum; $i++)
					{
			    eregi("<title>(.*)</title>", $item[$i+1], $title);
			    eregi("<link>(.*)</link>", $item[$i+1], $url);
			    $linesout .= '<li class="rss_kulso"><a href="'.$url[1].'" title="'.$title[1].'">'.$title[1].'</a></li>';
				  }
			  }
		  $this->helyi_filba_ment($linesout);
		  }
	  else
			{// ha kevesebb mint 1 órás a cachefájl
		  $linesout=$this->helyi_filebol_beolvas();
		  }
	return $linesout;
	}
 
	public function utolso_x_kiirasa($hanyat,$rssurl)
		{
		$this->rssurl=$rssurl;
		$this->cachefile = $_SERVER['DOCUMENT_ROOT'].'/cache/rss_'.md5($rssurl).'.dat';
  	?>
		<ul class="rss_kulso">
			<?php
			print($this->utolso_x_beolvasasa($hanyat));
			?>
		</ul>
		<?php
		}
	}
 
?>

Egy rss csatorna adataiból hámozza ki a legújabb cikkek/hírek címét és linkjét, majd nyomtatja ki monitorra egy listába, illetve menti el egy chache file-ba, hogy ne kelljen minden oldalbetöltésnél az rss csatornát piszkálnia.

Meghívni pedig emígyen lehet:

1
2
3
$o_rss_kulso = new o_rss_kulso();
$o_rss_kulso->utolso_x_kiirasa(3,"http://www.darkrpg-blog.hu/index.php/feed/");
unset($o_rss_kulso);

Tudomám, hogy nem nagy szám, de hátha valakinek hasznos lesz.

Címkék: ,

Szerzô: ED

No comments yet.

Leave a comment