http://www.linein.org/blog/2007/01/05/convert-isbn10-to-isbn13-with-php/
http://d.hatena.ne.jp/hhelibex/20101001/1285960903
これは上記のサイトのphpのテストです。
"..."の内容は上記のサイトにあります。
<?php
/**
* ISBN(ISBN-10、ISBN-13)をチェックするユーティリティ。
*
* @author hhelibex
* @see http://ja.wikipedia.org/wiki/ISBN
*/
class ISBNUtil {
...
}
/**
* Convert ISBN10 to ISBN13 with PHP
*
* @see http://www.linein.org/blog/2007/01/05/convert-isbn10-to-isbn13-with-php/
*/
function genchksum13($isbn) {
...
}
if (defined("STDIN"))
{
// usage //
$list = array(
'1234567890',
"4061592998",
"978-4061592995",
"4906732135",
"978-4906732135",
"978-4-286-13043-9",
);
$result = array();
foreach ($list as $str)
{
$isbn13 = "";
$maybeIsbn = "";
print "\n" . str_repeat("=", 70) . "\n";
$maybeIsbn = preg_replace("/[^0-9]/", "", $str);
switch (true)
{
case ISBNUtil::isValidISBN10($maybeIsbn):
print "\"{$maybeIsbn}\" is isbn10\n";
echo $isbn13 = isbn10_to_13($maybeIsbn); // returns ISBN13
print "\n";
var_dump(ISBNUtil::isValidISBN13($isbn13));
break;
case ISBNUtil::isValidISBN13($maybeIsbn):
print "\"{$maybeIsbn}\" is isbn13\n";
$isbn13 = $maybeIsbn;
break;
default:
trigger_error("\"{$maybeIsbn}\" is not isbn.", E_USER_NOTICE);
}
$result[] = array(
"original" => $str,
"converted" => $isbn13,
);
}
print "\n// check\n";
foreach ($result as $key1 => $val1)
{
print "\n" . str_repeat("=", 70) . "\n";
print "\$key1 = {$key1}\n";
print "\$val1[\"original\"] = {$val1["original"]}\n";
print "\$val1[\"converted\"] = {$val1["converted"]}\n";
foreach ($result as $key2 =>$val2)
{
if ($key1 !== $key2 && $val1["converted"] === $val2["converted"])
{
print "{$val1["original"]} == {$val2["original"]}\n";
}
}
}
}
0 件のコメント:
コメントを投稿