La scimmietta o il pesce di nome wanda o come tu lo conosci...
...per chi non conoscesse, questo e' un "gadget" presente nelle piu' famose distro di linux.
<?php
/*
webFortune by BLM
Copyright (C) 2008 Biglia Federico as BLM SkaarjIce
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
*/
function getFiles($cartella) {
if(@chdir($cartella)) { //se non posso entrare nella cartella, non posso ovviamente eseguire un cazzo (in fondo)
// a questo punto mi apro la cartella e ci lavoro dentro altimenti (in fondo) dico che non posso aprirla
if($myOpenDir = opendir(getcwd())) {
// prendo i l contenuto della cartella
while($entryName = readdir($myOpenDir)) {
if ($entryName != "." && $entryName != "..") { // pulisco gli elementi trovati da . e ..
$dirMatrice[] = $entryName;
}
}
// chiudo la cartella
closedir($myOpenDir);
if(isset($dirMatrice)) { // se la mia matrice di file non esiste allora vuol dire che la crtella e' vuota (in fondo)
// count elements in array
$indexCount=count($dirMatrice);
// metto in ordine
sort($dirMatrice);
return $dirMatrice;
}
else {
echo "Cartella vuota.<br>";
if(@chdir(".."))
if(rmdir($cartella)) { echo "Cancellata cartella $cartella<br>"; } else { echo "Non posso cancellare $cartella"; }
else
echo "Non trovo la cartella superiore. Non eseguo la rimozione di $cartella.";
}
}
else
echo "La cartella ".getcwd()." sembra eistere ma non la si puo' aprire.<br>";
}
else
echo "Impossible trovare la cartella richiesta(".getcwd()."/$cartella).<br>";
}
function openFile ($nomefile) {
if(!file_exists($nomefile)) //controllo se esiste il file oppure no
return "Mi spiace ma il file \"$nomefile\" non esiste."; //ritorno messaggio di errore
else {
$text=file_get_contents ($nomefile); //prendo tutto il contenuto del file
$array=split("\n\%\n",$text); //lo spezzetto con acapo%acapo
$num = rand (0,count($array)-1); //genero un numero casuale tra 0 e il numero massimo del array
return $array[$num]; //ritorno un fortune casuale
}
}
function pulisci($testo) {
$testo=str_replace(" "," ",$testo);
$testo=str_replace("-- "," -- ",$testo);
return $testo;
}
function noOffensive($array) {
for($i=0 ; $i<(count($array)-1) ; $i++) {
if(eregi("-o",$array[$i])) //se nel nome del file e' presente "-o" presumo sia un offensve forunes
unset($array[$i]); //quindi cancello il file dalla lista
}
return array_merge($array); //ricompatto e ritorno il nuovo array pulito
}
//////////////////////qui inizia il mio programma
if(!isset($_GET['externalfortune'])) { //se non e' un file esterno che vado a cercare allora....
$listaFile=getFiles("testi/"); // perndo la libreria di fortune
if(!isset($_GET['offensive'])) //se non esiste la variabile offensive nel get allora vuol dire che non voglio ii file offensivi
$listaFile=noOffensive($listaFile);
$num = rand (0,count($listaFile)-1); //estraggo un numero casuale tra 0 e il numero di file
$file=$listaFile[$num]; //estraggo un file dalla libreria
}
else
$file=$_GET['externalfortune'];
$txt=openFile($file);
$txt=pulisci($txt);
?>
<body bgcolor="#ffffff">
<span style="font-family: Courier, 'Courier New', monospace;font-size:12px">
<?php echo nl2br($txt); ?>
</body>