最近在編寫一個圖書管理程序的時候
國際標准書號(International Standard Book Number
平常我們能夠見到的ISBN碼有
校驗碼的計算方法(
假設某國際標准書號號碼前
計算加權和S
計算S÷
計算
如果N =
如果N =
如果N為其他數字
所以
校驗碼的計算方法(
假設某國際標准書號號碼前
計算加權和S
計算S÷
計算
如果N =
如果N為其他數字
所以
好了
function isbn_sum($isbn
{
/*
* 該函數用於計算ISBN加權和
* 參數說明
* $isbn : isbn碼
* $len : isbn碼長度
*/
$sum =
if ($len ==
{
for ($i =
{
$sum = $sum + (int)$isbn[$i] * ($len
}
}
elseif ($len ==
{
for ($i =
{
if ($i %
$sum = $sum + (int)$isbn[$i];
else
$sum = $sum + (int)$isbn[$i] *
}
}
return $sum;
}
function isbn_compute($isbn
{
/*
* 該函數用於計算ISBN末位校驗碼
* 參數說明
* $isbn : isbn碼
* $len : isbn碼長度
*/
if ($len ==
{
$digit =
if ($digit ==
$rc =
else if ($digit ==
$rc =
else
$rc = (string)$digit;
}
else if($len ==
{
$digit =
if ($digit ==
$rc =
else
$rc = (string)$digit;
}
return $rc;
}
function is_isbn($isbn)
{
/*
* 該函數用於判斷是否為ISBN號
* 參數說明
* $isbn : isbn碼
*/
$len = strlen($isbn);
if ($len!=
return
$rc = isbn_compute($isbn
if ($isbn[$len
return
else
return
}
函數寫好後
<?php echo is_isbn(
原文
From:http://tw.wingwit.com/Article/program/PHP/201311/21167.html