Zend - The PHP Company




Algorithms

Add Code


checkdigit modulo 10  

Type: code fragment
Added by: ulflun
Entered: 02/11/2001
Last modified: 01/12/2010
Rating: *** (5 votes)
Views: 6436
Calculates the checkdigit, cdv 10, for either a integer or string value. Cdv10 are often used in account-numbers etc.


<?php
    
function cdv10($str)
    {
        if (
is_string($str))
        {
            for (
$i=0;$i<strlen($str); $i++)
            {
                
$out $out Ord(substr($str,$i,1));
            }
        }
        else
            
$out=$str;

        
// is the length odd or even
        
if ((int)(strlen($out)/2)    == (int)((strlen($out)/2)+0.9))
            
$m=0;
        else
            
$m=1;

        
// sum the values for each digit, take care of values > 9
        
for ($i=0;$i<strlen($out); $i++)
        {
            
$m=($m==1)?2:1;
            
$v=$m*substr($out$i1);
            if (
$v>9)
                
$v=(substr($v01)+substr($v11));
            
$sum $sum $v;
        }

        
// what is the check digit??
        
$cd=(round($sum/10+0.49)*10) - $sum;

            return 
$cd;
    }
?>


Usage Example




Rate This Script





Search



This Category All Categories