ISBN10 zu ISBN13 Umrechnung mit PHP

2006-11-29

Ein kleines Problem stellte sich mir gerade… wie rechne ich eine alte ISBN-10-Nummer mit 10 Stellen (bzw. 13 mit Bindestrichen) in eine neue, ab 1.1.2007 vorgeschriebene ISBN-13 mit 13 Stellen umzuwandeln.

function isbn10to13($isbn10){ $isbnclean = preg_replace("/([^d])/",  "",substr($isbn10,0,-1)); if (strlen($isbnclean) != 9) {  return $isbn10; } $isbn="978".$isbnclean;

 $check=0; for ($i=0;$i<12;$i++) {  $check+=(($i%2)*2+1)*$isbn{$i}; } $check=(10-($check%10))%10; return "978-".substr($isbn10,0,12).$check;}

Dieses Skript tut eben genau das!

  1. Andre - Dezember 10th, 2006 at 16:25

    Hallo,
    in der vorletzten Zeile muss es
    return “978-”.substr($isbn10,0,-1).$check;
    heissen, also “-1″ statt “12″.
    Ansonsten ein schönes Script, danke!

  2. justBe - Dezember 10th, 2006 at 17:23

    @andre: es funktionieren beide Varianten. -1 bedeutet bis zum vorletzten Zeichen und meine Variante geht bis zum 12. Zeichen.

  3. Jens - Januar 25th, 2007 at 12:33

    Hallo

    vielen Dank für dieses Skript! Andre scheint aber recht zu haben. Mit deinem Code kommt eine 14 Stellige raus… die nicht mit bekannten ISBN-13 über einstimmt (Vorletze Zahl ist zu viel). Mit Andres Code kommt ne 13ner raus die stimmt..

    Gruß Jens

  4. Anolphie - Mai 21st, 2007 at 16:24

    Wo wir schon bei dem Thema Umrechnungen sind :-) Bei http://www.umrechnungen.de kann man Maßeinheiten mittels Ajax-Anwendung online umrechnen.