J’ai dĂ©jĂ proposĂ© ici plusieurs fonctions PHP pour convertir convertir un ISBN-10 en EAN-13 ou l’inverse, mais ce n’est pas toujours pratique d’avoir 36 fonctions diffĂ©rentes. Voici donc la fonction unique pour les rassembler toutes et dans les tĂ©nĂšbres les lier.
MAJ du 20/04/2014 : Une version plus récente et orientée-objet.
Quand on bosse sur le web et dans le secteur du livre, on a souvent l’occasion d’utiliser les ISBN-13 (ces identifiants unique dont tous les livres publiĂ©s depuis les annĂ©es 70 sont dotĂ©s) et on a parfois besoin de les convertir en EAN-13 (les codes barres qui se trouvent au dos des livres) pour toutes sortes de raisons, voire en ISBN-10 (ISBN Ă 10 chiffres en usage avant janvier 2007). Pour cette raison, j’ai dĂ©veloppĂ© plusieurs fonctions permettant de faire des conversions, mais je pensais depuis un moment Ă les regrouper en une seule qui soit multitĂąche. C’est donc chose faite.
La fonction isbn() accepte en entrĂ©e n’importe quelle forme de code : ISBN-10, ISBN-13, EAN, avec ou sans tiret, avec ou sans clĂ© de contrĂŽle, et peut le restituer Ă la sortie sous forme d’ISBN-10, d’ISBN-13 ou d’EAN. Il peut donc Ă©galement servir Ă calculer la clĂ© de contrĂŽle d’un ISBN (en l’entrant sans le dernier caractĂšre) ou Ă calculer la validitĂ© d’un ISBN. Quelques exemples :
Convertir un EAN en ISBN-13
isbn("9782953595109","ISBN13") // retourne 978-2-9535951-0-9
Convertir un ISBN-10 en EAN-13
isbn("2-9535951-0-4","EAN") // retourne 9782953595109
Calculer la clĂ© de contrĂŽle d’un ISBN-13
isbn("978-2-9535951-0","ISBN13") // retourne 978-2-9535951-0-9
VĂ©rifier la validitĂ© d’un EAN
if(isbn("978-2-9535951-0","ISBN13") == "978-2-9535951-0") echo "ok" // affiche ok
function.isbn.php 1.2 : Demo / Télécharger
MAJ du 23/12/2010 (1.1) : OK, donc la premiÚre version était complÚtement bugguée, en voici une qui fonctionne vraiment.