仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1464|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页设计PHP校验ISBN码的函数代码

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:40:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...   具体材料可以参考:国际尺度书号 C 维基百科,上面仍是简述一下甚么是ISBN码:
国际尺度书号(International Standard Book Number,ISBN;拟发音is-ben),是国际通用的图书或自力的出书物(除按期出书的期刊)代码。出书社可以经由过程国际尺度书号明晰的识别一切非期刊书本。一个国际尺度书号只要一个或一份响应的出书物与之对应。新版本假如在本来旧版的基本上没有内容上太大的变化,在出书时也不会失掉新的国际尺度书号码。当平装本改成平装本出书时,本来响应的国际尺度书号号码也应该发出。
平凡咱们可以见到的ISBN码有10位和13位两种,个中10位的ISBN自2007年1月起已中断利用,今朝新出书的图书ISBN码都是13位。思索到一个严谨的图书办理法式要思索到多方面的成绩,由于10位ISBN码的图书仍是有伟大的存世量的,所以要校验图书ISBN码的准确性,就必需同时思索10位和13位的情形。从维基百科可以懂得到ISBN码最初一名是校验码,其实要想校验ISBN码的准确,就是经由过程盘算ISBN的校验码,看是不是与最初一名吻合。这里所说的校验也只是校验ISBN在组成上是不是正当,而不会校验是不是为已刊行图书的ISBN。上面是维基百科供应的ISBN码校验算法:
校验码的盘算办法(10码)
假定某国际尺度书号号码前9位是:7-309-04547
盘算加权和S:S = 7×10+3×9+0×8+9×7+0×6+4×5+5×4+4×3+7×2 = 226
盘算S÷11的余数M:M = 226 mod 11 = 6
盘算11 C M 的差N:N = 11 ? 6 = 5
假如N = 10,校验码是字母"X"
假如N = 11,校验码是数字"0"
假如N为其他数字,校验码是数字N
所以,本书的校验码是5;假如用户供应的ISBN码是7-309-04547-6,那末校验掉败
校验码的盘算办法(13码)
假定某国际尺度书号号码前12位是:978-986-181-728
盘算加权和S:S = (9×1)+(7×3)+(8×1)+(9×3)+(8×1)+(6×3)+(1×1)+(8×3)+(1×1)+(7×3)+(2×1)+(8×3) = 164
盘算S÷10的余数M:M = 164 mod 10 = 4
盘算10 C M 的差N:N = 10 ? 4 = 6
假如N = 10,校验码是数字"0"
假如N为其他数字,校验码是数字N
所以,本书的校验码是6。完全的国际尺度书号号码为 ISBN 978-986-181-728-6
好了,后台常识引见到这,上面我写的ISBN码校验函数(php版),需求的话可以直接利用:
复制代码 代码以下:
function isbn_sum($isbn, $len)
{
/*
* 该函数用于盘算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)
{
$digit = 10 - isbn_sum($isbn, $len) % 10;
if ($digit == 10)
$rc = '0';
else
$rc = (string)$digit;
}
return $rc;
}
function is_isbn($isbn)
{
/*
* 该函数用于判别是不是为ISBN号
* 参数申明:
* $isbn : isbn码
*/
$len = strlen($isbn);
if ($len!=10 && $len!=13)
return 0;
$rc = isbn_compute($isbn, $len);
if ($isbn[$len-1] != $rc) /* ISBN尾数与盘算出来的校验码不符 */
return 0;
else
return 1;
}

函数写好后,就能够直接挪用了,上面是挪用示例:
复制代码 代码以下:
<?php echo is_isbn('9787507421781') ? '校验经由过程' : '校验掉败'; ?>

别的我写了一个在线校验ISBN的东西,利用该东西可以在线校验ISBN码的正当性,可以点击以下链接利用:ISBN码在线校验东西聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。
活着的死人 该用户已被删除
沙发
发表于 2015-2-4 05:58:52 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
因胸联盟 该用户已被删除
板凳
发表于 2015-2-9 16:34:12 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-24 21:05:35 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
山那边是海 该用户已被删除
5#
发表于 2015-2-28 10:15:08 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
透明 该用户已被删除
6#
发表于 2015-3-5 19:33:00 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
7#
发表于 2015-3-6 21:54:40 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
若天明 该用户已被删除
8#
发表于 2015-3-12 13:19:03 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
深爱那片海 该用户已被删除
9#
发表于 2015-3-14 23:59:54 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
柔情似水 该用户已被删除
10#
发表于 2015-3-21 14:57:06 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
乐观 该用户已被删除
11#
发表于 2015-3-22 23:10:45 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
小妖女 该用户已被删除
12#
发表于 2015-3-26 21:38:14 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
不帅 该用户已被删除
13#
发表于 2015-4-4 01:02:12 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
第二个灵魂 该用户已被删除
14#
发表于 2015-4-4 21:49:01 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
蒙在股里 该用户已被删除
15#
发表于 2015-4-7 19:07:34 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
再见西城 该用户已被删除
16#
发表于 2015-4-26 18:08:36 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
变相怪杰 该用户已被删除
17#
发表于 2015-5-6 01:10:02 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
爱飞 该用户已被删除
18#
发表于 2015-5-11 06:11:33 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
再现理想 该用户已被删除
19#
发表于 2015-6-12 19:16:25 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
简单生活 该用户已被删除
20#
发表于 2015-6-20 02:04:13 | 只看该作者
做为1门年轻的语言,php一直很努力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 09:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表