Voici un petit script sans prétention vous permettant d’afficher les acronymes que vous aurez stocké en base de donnée. En mode édition il vous faudra appliquer un BBcode sur l’expression à gérer. Une fonction se chargera de transformer le tout en code HTML valide.
La petite table qui va bien
C’est vraiment une petite table, elle ne contient qu’un champ pour stocker l’acronyme (en Primary Key) et son interprétation complète.
DROP TABLE IF EXISTS `blog_acronym`; CREATE TABLE `blog_acronym` ( `acronym` varchar(20) NOT NULL default '', `libelle` varchar(255) NOT NULL default '', KEY `acronym` (`acronym`) ) TYPE=MyISAM; |
La fonction qui va bien
Voici une méthode extraite de la classe MiniBlog qui sert à gérer ce même blog.
// + ---------------------------------------------------------------------------------- // + makeAcronym // + Entrée : le texte à traiter // + Sortie : le texte traité function makeAcronym ($texte) { $texte = preg_replace_callback("#\[acronym\](.+?)\[\/acronym\]#si", create_function('$matches', ' $rq = "SELECT * FROM `blog_acronym` WHERE `acronym` = \'" . $matches[1] . "\'"; $acronym = mysql_fetch_object(mysql_query($rq)); return ($acronym->acronym) ? "<acronym title=\"" . $acronym->libelle . "\">" . $matches[1] . "</acronym>" : $matches[1]; ') , $texte); return $texte; } |
Usage
Accédez à la notice d’utilisation ici
Pour ceux qui voudrait la table avec quelques entrées voici la Liste des acronymes utilisés sur ce Blog ![]()




















Pourquoi tu utilises pas un fichier texte plutôt ??
Ca serait certainement plus rapide niveau temps d’execution.
Woups, le lien vers la liste marche pô
::whistle
Merci, une erreur d’url. Sinon pourquoi une base de donnée? C’est plus simple à gérer
Ouais, sympa, mais moi, j’aurais tout mis dans tableau, c’est plus rapide (quand le script de rendu est long (ce qui est mon cas
)
test : CSS et xHTML, la solution ?
Je suis pas d’accord avec ASM… chez moi, c’est assembleur
Antoine> Dans ce cas là la fonctionnalité supplémentaire te sera utile ^^, car moi je garde mon ASM
C’est sympa comme fonction.
J’aurai par contre rajouté la gestion d’erreur à la fonction de callback et du coup défini celle-ci en dehors de l’appel à preg_replace_callback() (peut-être pas pour l’exemple, mais en tout cas dans un script en production).
Bonjour Daniel,
j’ai utilisé create_function car makeAcronym() fait partie de ma classe de gestion de blog. Je voulais tout encapsuler et éviter d’utiliser une fonction externe. Je n’ai en effet pas trouvé comment appeler une fonction membre en callback
…