on tente de le formater en ISBN $code = EANtoISBN($saisieISBN); // si échec, on prend l'EAN comme il vient if(!$code) $code = $saisieISBN; } else { if(isISBN($saisieISBN)) { // si la saisie est un ISBN $code = formatISBN($saisieISBN); // si échec, ISBN erroné on le prend sous cette forme if(!$code) $code = $saisieISBN; } else { // ce n'est rien de tout ça, on prend la saisie telle quelle $code = $saisieISBN; } } return $code ; } return ""; } //Pour vérifier un ISSN function isISSN($issn) { $checksum=0; // s'il y a des lettres, pas un ISSN if(preg_match('/[A-WY-Z]/i', $issn)) return FALSE; $issn = preg_replace('/-|\.| /', '', $issn); //Plus de 8 digits, pas un ISSN if (strlen($issn)!=8) return FALSE; $key = $issn[strlen($issn) - 1]; if(strtoupper($key) == 'X') $key = 10; $issn = substr($issn, 0, strlen($issn) - 1); // vérification de la clé for($i = 0; $i < strlen($issn) ; $i++) { $checksum += (8 - $i) * $issn[$i]; } $checksum += $key; if (($checksum%11) == 0) return TRUE ; else return FALSE ; } //retourne un code issn formate correctement ou le code saisi si ce n'est pas un issn function traite_code_ISSN($issn) { if ($issn) { if (isISSN($issn)) { $issn = preg_replace("/[^0-9|X]/i", '', $issn); $issn = str_replace('x','X',$issn); $issn=substr($issn,0,4).'-'.substr($issn,4,4); return $issn; } else return $issn; } return ''; }