lundi 5 octobre 2009
Très populaire dans l'univers Unix/Linux, le FIGlet est un programme qui génère du texte sous forme d'art ASCII à l'aide de caractères. Autrement dit, comme celui-ci :
Même si ça date d'une autre époque, on peut aujourd'hui s'en servir pour l'appliquer sur des formulaires web en guise de captcha.
Le Zend Framework fournit un composant nommé Zend_Text qui inclut une classe pour générer des figlets très facilement. Par exemple, deux lignes de code PHP suffisent pour en générer un :
$figlet = new Zend_Text_Figlet();Le problème, c'est qu'en n'étant pas bordé de balises PRE, il s'affiche sur une seule ligne.
echo $figlet->render('Code 18');
On peut aussi configurer différents paramètres en passant un array au constructeur. À l'intérieur, on pourra optionnellement changer la font mais Zend en fournit une seule par défaut (zend-framework.flf). On pourra visualiser et télécharger d'autres fonts sur figlet.org.
$options = array(Une fois le fichier .flf téléchargé (ce n'est qu'un léger fichier texte), on le placera sur le serveur ou dans Zend/Text/Figlet. Comme Zend_Text_Figlet utilise file_exists() au moment de charger la font, il ne résout pas les chemins selon les directives dans le include_path, on devra fournir le chemin absolu (comme dans l'exemple ci-dessus).
'font' => '/var/www/project/Zend/Text/Figlet/small.flf',
'outputWidth' => 100,
'justification' => Zend_Text_Figlet::JUSTIFICATION_CENTER,
'rightToLeft' => Zend_Text_Figlet::DIRECTION_LEFT_TO_RIGHT
);
$figlet = new Zend_Text_Figlet($options);
echo '<pre style="font-size:small;">';
echo $figlet->render('Code 18');
echo '</pre>';
Si vous comptez l'utiliser, sachez que les fonts ne contiennent pas tous les caractères et que les accents ne sont pas reconnus. Je recommande l'utilisation limitée des caractères alphanumériques pour éviter les mauvaises surprises.