<?php
/*Modificate i seguenti parametri di configurazione dove necessario*/
/*-----------------------------------------------------------------*/
$local_file =
http://www.bonna.altervista.org/news/news.txt; //Percorso del file news.txt sul vostro server. È necessario il percorso assoluto.
$timeout = 10; //Timeout in caso di problemi al server di !pc-facile - non modificare a meno di necessità
$cache_time = 1800; //Numero di secondi che devono intercorrere tra gli aggiornamenti della cache. NON abbassare questo valore sotto i 1800 secondi di default
$news_number = 10; //Numero di news che si vogliono esporre sul proprio sito - il massimo è 10
$trim = 1000; //Accorcia titoli troppo lunghi a $trim caratteri. Se non si vuole usufruire di questa opzione usare un numero molto alot: eg 1000
$remote_file = "http://www.pc-facile.com/news.txt"; //Percorso del file news.txt su !pc-facile - da non modificare
/*------------------------*/
/*Configurazione terminata*/
check_news();
$content = read_news();
for ($i = 0; $i < $news_number; $i++)
{
list($id, $title, $hour, $day) = explode (";:;", $content[$i]);
$short_title = rtrim (substr ($title, 0, $trim) );
( strlen ($title) > $trim ) ? $short_title .= "..." : "";
}
/*---------------------------------------------------
ATTENZIONE!!! NON modificare nulla oltre questo punto!
----------------------------------------------------*/
function check_news()
{
global $local_file, $cache_time;
if (file_exists ($local_file))
{
if ( ( time() - filemtime ($local_file) ) > $cache_time)
{
refresh_news();
}
}
}
function refresh_news()
{
global $remote_file, $local_file, $timeout;
$fp = @fopen ($remote_file, "r");
if ($fp)
{
socket_set_timeout ($fp, $timeout);
$cache = @fopen ($local_file, "w");
$lock = flock ($cache, LOCK_EX);
if ($lock)
{
while (!feof ($fp))
{
$line = fgets ($fp);
fwrite ($cache, $line);
}
}
$lock = flock ($cache, LOCK_UN);
fclose ($cache);
}
}
function read_news()
{
global $local_file, $news_number;
settype($content, "array");
$fp = fopen ($local_file,"r");
$lock = flock ($fp, LOCK_SH);
if ($lock)
{
while (!feof ($fp))
{
$content[] = fgets ($fp);
}
}
$lock = flock($fp, LOCK_UN);
fclose ($fp);
return $content;
}
?>