【发布时间】:2018-07-20 08:14:38
【问题描述】:
我找到了一个 PHP 脚本github ISBN-Calc Routine 来执行 ISBN-10 校验和计算:
<?php
/**
* Calculate ISBN checksum
*
* @param string $isbn
* @return integer
*/
function isbn_checksum($isbn) {
$sum = 0; $isbn = str_split(preg_replace('/[^\d]/', '', $isbn));
foreach($isbn as $key => $z) {
if($key >= 12) break;
$sum += ($key % 2) ? $z * 3 : $z;
}
$checksum = (10 - $sum % 10);
return ($checksum == 10) ? 0 : $checksum;
}
但是对于我的ISBN-10: 0470173424,我通过这个 github 脚本得到了Checksum: 0。
根据ISBN online checker,校验和应该是 4,就像 ISBN 中一样。请问这里有人可以提供正确的PHP例程吗?
谢谢
【问题讨论】:
-
您尝试过什么调试?如果脚本没有按预期工作,请选择另一个 - 算法非常简单