J’ai proposĂ© ici-mĂȘme, ces derniĂšres annĂ©es, plusieurs fonctions PHP permettant la manipulation, la conversion et la validation de codes ISBN, que j’utilise notamment dans le cadre de Biblys ou Citriq.  Entre temps, j’ai dĂ©couvert la programmation orientĂ© objet : voici donc une classe pour rĂ©unir toutes ses fonctions.
Télécharger php-isbn-class sur Github
Un autre intĂ©rĂȘt de cette classe par rapport Ă mes prĂ©cĂ©dentes fonctions est qu’elle ne se limite pas aux ISBN francophones (978-2 et 979-10) mais qu’elle fonctionne avec n’importe quel code, grĂące au fichier range.xml qui l’accompagne.
Cette classe peut ĂȘtre utilisĂ©e pour :
- Valider un code ISBN
- Convertir des codes entre les formats ISBN-10, ISBN-13 et EAN (sans tirets)
- Calculer le caractĂšre de contrĂŽle
- Afficher l’agence d’enregistrement du code (pays ou langage)
DĂ©mo
Une dĂ©mo est disponible Ă l’adresse : http://labs.nokto.net/php-isbn-class/
Installation
- Incluez ISBN.class.php dans votre script PHP
- Procurez-vous une version rĂ©cente du fichier range.xml auprĂšs de l’ISBN International Agency (ou utilisez celle fournie)
- DĂ©finissez la constante ISBN_RANGES_FILE avec le chemin du fichier range.xml
- Utilisez les autres constantes pour dĂ©finir vos messages d’erreurs (en anglais par dĂ©faut).
Utilisation
 <?php require_once('ISBN.class.php'); $isbn = new ISBN('9791091146098'); // créer un objet ISBN if ($isbn->isValid()) // vérifie si le code est un ISBN valide { echo $isbn->format('ISBN-13'); // affiche le code au format ISBN-13 echo $isbn->format('ISBN-10'); // affiche le code au format ISBN-10 echo $isbn->getChecksum(); // calcule et affiche le caractÚre de contrÎle echo $isbn->getAgency(); // affiche l'agence d'enregistrement } else { echo $isbn->getErrors(); // show validation errors } ?>
Image de une : Barcode CC BY-SA  Martin Fisch