2014-01-16 3 views
1

Я написал функцию в PHP, которая генерирует хорватский IBAN для данного банковского счета. Я могу легко переписать для возврата любого IBAN. Проблема в том, что я думаю, что она не оптимизирована и не элегантна. Это функция:Оптимизировать скрипт PHP для генерации IBAN

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?

+0

С чем вы столкнулись? Вам нужно генерировать большое количество кодов? –

ответ

1

На первый взгляд кажется, что вы не можете сделать это намного быстрее, это просто простая последовательность добавления строк. Если вы не будете использовать его тысячи раз и что представляет собой узкое место для вашего приложения, я бы не тратил время на то, чтобы сделать его лучше, это, вероятно, займет несколько микросекунд, и просто обновление версии PHP, вероятно, сделает улучшения намного лучше, чем код изменений, которые вы бы выполнили.

Если вы действительно должны сделать это быстрее, возможные решения - написание его функции в расширение - APC кэширование ОП-код (он должен делать вещи, как правило, быстро при интерпретации коды так глобально увеличить скорость) - кэширование результатов в памяти (только если ваше приложение запускает один и тот же ввод много раз, что, вероятно, не является распространенным случаем для простого алгоритма, подобного этому)

Если вы хотите поиграть с ним и попытаться сделать его быстрее, осторожно , вы можете изменить логику и ввести ошибку. Всегда используйте модульный тест, или написать несколько тестов, прежде чем изменить его, всегда хорошая практика

0

Вы можете посмотреть на этом репо:

https://github.com/jschaedl/Iban

с вашей стороны, чтобы добавить правила Хорватия. После этого вы сможете использовать его для своей страны.

Greetz

Смежные вопросы