background image

 * 该函数用于计算 ISBN 加权和 
 * 参数说明:
 *   $isbn : isbn 码
 *   $len  : isbn 码长度
 */
    $sum = 0;
    if ($len == 10)
    {
        for ($i = 0; $i < $len-1; $i++)
        {
            $sum = $sum + (int)$isbn[$i] * ($len - $i);
        }
    }
    elseif ($len == 13)
    {
        for ($i = 0; $i < $len-1; $i++)
        {
            if ($i % 2 == 0)
                $sum = $sum + (int)$isbn[$i];
            else
                $sum = $sum + (int)$isbn[$i] * 3;
        }
    }
    return $sum;
}
function isbn_compute($isbn, $len)
{
/* 
* 该函数用于计算 ISBN 末位校验码
* 参数说明:
*   $isbn : isbn 码
*   $len  : isbn 码长度
*/
    if ($len == 10)
    {
        $digit = 11 - isbn_sum($isbn, $len) % 11;

        if ($digit == 10)

            $rc = 'X';
        else if ($digit == 11)
            $rc = '0';
        else
            $rc = (string)$digit;
    }
    else if($len == 13)