首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >优化PHP脚本生成IBAN

优化PHP脚本生成IBAN
EN

Stack Overflow用户
提问于 2014-01-16 13:21:42
回答 2查看 2K关注 0票数 1

我用PHP编写函数,为给定的银行帐户生成克罗地亚IBAN。我可以轻松地为返回任何IBAN重写。问题是我认为它既不优化,也不优雅。这是一项功能:

代码语言:javascript
运行
复制
function IBAN_generator($acc){

    if(strlen($acc)!=23)
        return;
    $temp_str=substr($acc,0,3);
    $remainder =$temp_str % 97;
    for($i=3;$i<=22;$i++)
    {
        $remainder =$remainder .substr($acc,$i,1);
        $remainder  = $remainder  % 97;
    }
    $con_num = 98 - $remainder;
    if ($con_num<10)
    {
        $con_num="0".$con_num;
    }
    $IBAN="HR".$con_num.substr($acc,0,17);
    return $IBAN;
} 

有更好的方法来生成IBAN吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-16 13:33:47

乍一看,你似乎不能让它变得更快,它只是简单的字符串附加序列。除非您不得不使用它数千次,这对您的应用程序来说是一个瓶颈,否则我不会浪费时间让它变得更好,这可能需要几微秒,而仅仅升级PHP版本可能会比您实现的代码更改更好。

如果您真的需要使它更快,可能的解决方案是-将它编写成扩展- APC op代码缓存(在解释代码时通常会加快速度)缓存会产生内存(只有当应用程序多次运行相同的输入时,这可能不是像这样的简单算法的常见情况)。

如果你想玩它,并试图使它更快,小心,你可以改变逻辑,并引入一个错误。始终使用单元测试,或者在更改测试用例之前编写一些测试用例,这是一个很好的实践。

票数 1
EN

Stack Overflow用户

发布于 2014-02-25 10:21:12

你可以看看这个回购:

https://github.com/jschaedl/Iban

你的做法是增加克罗地亚的规则。在那之后,你应该能够为你的国家使用它。

格列茨

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21162994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档