Tutorial de fortune.php

  1. Brève histoire de fortune
  2. Fonctionnement
  3. Adaptation en PHP
  4. Limitations
  5. Utilisation
  6. Fichiers de citations disponible sur ce site
  7. Retour au menu
"; ?>

1.Brève histoire de fortune

Le programme fortune a été developpé sous NetBSD, un des nombreux clones d'Unix. Il affiche une citation prise au hasard dans un ou plusieurs fichiers. Il à été ensuite porté sous Linux, puis son code source ayant été rendu plus générique, sous d'autres plateformes, dont SunOS 4.x par exemple.

pour plus d'infos sur l'histoire de fortune, faites donc un man fortune sur votre système Un*x préféré !


2.Fonctionnement

Chaque "ensemble" de citations est divisé en deux fichiers: un fichier texte contenant les citations elles-mêmes, chacune étant séparée par un charactère à part, habituellement le %. Depuis la version 1.4 de fortune, un fichier d'index à extension .dat lui est associé, contenant des pointeurs vers les emplacements des citations.

En clair, fortune lit le fichier .dat et prends un "repère" au hasard, repère qui contient la position de la citation correspondante, pour aller la chercher et l'afficher. Cela accélère énormément la selection avec de gros fichiers (plusieurs milliers de citations)

Les fichiers .dat sont générés automatiquement par le programme strfile, fourni avec le paquetage fortune.

A noter que l'utilisation ne se limite pas à l'affichage de citations, on peut très bien s'en servir pour afficher des infos, de la publicité, etc.!


3.Adaptation en PHP

Cette adaptation en PHP suis le même principe que le programme d'origine, à savoir tirer un fichier de citations au hasard, puis de tirer une citation dans le fichier d'index, et enfin d'afficher la citation correspondante.

Le fonctionnement des options suit là-encore le même principe: appelé sans paramètre, fortune.php affiche une citation prise au hasard parmis tous les fichiers; appelé avec un nom de fichier en paramètre, la citation ne sera tiré que de ce fichier.

La citation est renvoyée en "brut", c'est à dire sans aucune mise en forme. A vous ensuite d'ajouter des effets (couleurs, etc) !


4.Limitations

Le programme strfile permettant de générer les fichiers d'index n'à pas été adapté en php. Il faut toujours utiliser le programme original pour la création.

Le programme fortune original propose de multiples options, comme spécifier un tirage particulier (genre 20% pour le fichier citation1 et 80% pour citation2), ou encore avoir des citations "offensantes" à afficher à part...tout cela n'a pas été adapté. Seules les fonctions basiques sont supportées en fait, c'est à dire le tirage d'une citation dans un fichier spécifié, ou dans l'ensemble des fichiers. il m'a semblé en effet inutile de surcharger le code PHP, il est d'autant plus rapide comme ça. Cela dit, si il y a des amateurs...à vos claviers !!


5.Utilisation

Pour afficher une citation aléatoire dans votre site, insérez le code suivant dans une page PHP:

<?php
include("http://tourmentine.com/modules/fortune.php");
?>


Vous pouvez aussi passer le nom d'un fichier en paramètre, dans ce cas les citations seront tirées au hasard parmi celles disponibles dans ce fichier.
La syntaxe sera alors la suivante:

<?php
$FileName="Nom_Du_Fichier";
include("http://tourmentine.com/modules/fortune.php");
?>


L'utilisation n'est pas limitée au PHP, on peut l'appeler avec un simple lien HTML:

<a href="http://tourmentine.com/modules/fortune.php?FileName=Pensees">Cliquez ici pour ouvrir la maxime du jour</a>


Ou via JavaScript (dans votre pas de démarrage par exemple ;). Attention, le nom du script n'est pas le même:

<script language="javascript" src="http://tourmentine.com/scripts/fortune.js"></script>

<script language="javascript" src="http://tourmentine.com/scripts/fortune.js?FileName=tolkien_fr"></script>

6.Fichiers de citations disponible sur ce site

Cliquez sur le nom du fichier pour afficher une de ses citations dans une nouvelle fenêtre, ou sur télécharger pour télécharger un fichier archive (à décompresser avec gzip/tar, WinZip, ou PowerArchiver) contenant le fichier complet ainsi que le .dat associé. Une fois décompressés, ces fichiers sont directement utilisables par le programme fortune ou le script fortune.php.




(MAJ ".date("j M Y",filemtime(__FILE__)).")

"; echo "
"; ?>