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