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