n/oldblog
Archived
1
0
Fork 0
This repository has been archived on 2024-02-13. You can view files and clone it, but cannot push or open issues or pull requests.
oldblog/modules/fortune.js.php
2023-04-30 21:50:11 +02:00

101 lines
2.4 KiB
PHP

<?php
/*
Name: fortune.php
Author: NicoSoft
Création: 26/08/02
MAJ : 26/08/02
*/
if (isset($_GET["FileName"]))
$FileName = $_GET["FileName"];
// plante la graine...
mt_srand ((double) microtime() * 1000000);
if (!isset($FortuneDir) || $FortuneDir == " ")
$FortuneDir = "fortunes/";
if (isset($RepSup) && $RepSup != "")
$FortuneDir = $FortuneDir.$RepSup."/";
if (!isset($FileName) || $FileName == "")
$FileName = "random";
/********************
* gestion des fichiers *
********************/
if ($FileName == "random")
{
//echo "mode aleatoire:<br>";
$d = opendir($FortuneDir);
$Nb=0;
// récupère les noms des fichiers
// (uniquement ceux sans points)
while (false!==($file = readdir($d)))
if (!strchr($file,"."))
$FileNameNoDot[$Nb++] = $file;
// selectionne un fichier au hasard
$Number= mt_rand(0, $Nb-1);
// ce fichier sera utilisé comme fichier par défaut
$FileName=$FileNameNoDot[$Number];
closedir($d);
}
// vérifie si les fichier existent
if (!file_exists("$FortuneDir$FileName"))
die("$FortuneDir$FileName n'existe pas!!");
else if (!file_exists("$FortuneDir$FileName.dat"))
die("$FortuneDir$FileName.dat n'existe pas!!");
else
/********************
* gestion des citations *
********************/
{
$fd=fopen("$FortuneDir$FileName.dat", "rb");
// saute le numéro de version (sans interet)
$trash=fread($fd,4);
// récupère le nb de citations
$str_numstr=hexdec(bin2hex(fread($fd,4)));
// on en prend une au hasard
$Number= mt_rand(0, $str_numstr-1);
// recherhe la position
$trash=fread($fd, 12);
$str_delim=fread($fd,4);
for($i=0;$i<=$Number;$i++)
$str_pointer=hexdec(bin2hex(fread($fd,4)));
fclose($fd);
$CptChar = 0;
// recherche dans le fichier texte la citation correspondante
$fd=fopen("$FortuneDir$FileName", "r");
fseek($fd, $str_pointer);
// puis l'affiche
$Char=fgets($fd, 1024);
while (strcmp($Char,"%\n")!=0 && !feof($fd))
{
if (feof($fd))
fseek($fd,0);
echo "document.write(\"";
echo rtrim($Char);
echo "<br>\");\n";
$Char=fgets($fd, 100);
}
fclose($fd);
}
?>