2014-01-16 5 views
1

주어진 은행 계좌에 대해 크로아티아 IBAN을 생성하는 PHP 함수를 작성했습니다. 나는 IBAN을 반환하기 위해 쉽게 다시 작성할 수 있습니다. 문제는 그것이 최적화되지도 우아하지 않은 것입니다. 다음은이 함수입니다.IBAN을 생성하기위한 PHP 스크립트 최적화

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 연산 코드 캐시 (그래서 전 세계적으로 속도를 높일 코드를 해석 할 때 그것은 일반적으로 빨리 일을해야한다) - 캐싱 결과가 메모리에 저장됩니다 (응용 프로그램이 동일한 입력을 여러 번 실행하는 경우에만 해당).

더 빠르게 재생하려면 조심해야합니다. , 당신은 논리를 바꿀 수 있고 버그를 소개 할 수 있습니다. 규칙을 추가

https://github.com/jschaedl/Iban

당신의 부분에있다 : 항상 당신이 환매 특약을 살펴있을 수 있습니다 단위 테스트를 사용하거나 항상 좋은 연습

0

그것을 변경하기 전에 몇 가지 테스트 케이스를 작성 크로아티아. 그 후에는 해당 국가에서 사용할 수 있어야합니다.

Greetz