eXorithm – Execute Algorithm: View / Run Algorithm isbn_validate

Logo Beta

function isbn_validate ($isbn$type
{
  $okay = false;
  $isbn = str_replacearray'-'' '), ''$isbn);
  
  // check ISBN 13
  if ($type!=2)
  {
    if (strlen$isbn)==13)
    {
      $sum=0;
      $charsokay=true;
      for ($i=0;$i<12;$i++)
      {
        if (($i%2)==1)
          $weight=3;
        else
          $weight=1;
        
        if (is_numeric$isbn$i]))
          $sum += $weight$isbn$i];
        else
          $charsokay=false;
      }
     
      if ($charsokay
        if ($sum>0)
          if ((10-($sum % 10)) % 10==$isbn[12])
            $okay = true;
    }
  }
  
  // check ISBN 10
  if ($type!=1)
  {
    if (strlen$isbn)==10)
    {
      $sum=0;
      $charsokay=true;
      for ($i=0;$i<10;$i++)
      {
        if (is_numeric$isbn$i]))
          $sum += ($i+1)*$isbn$i];
        else 
        {
          if ((strtolower$isbn$i])=='x') && ($i==9))
            $sum += 100;
          else
            $charsokay=false;
        }
      }
         
      if ($charsokay
        if ($sum>0)
          if (($sum % 11)==0)
            $okay = true;
    }
  }
  
  return $okay