Mailinglisten-Archive |
hoffe mir selbst geholfen zu haben ... ;) kann sich jemand den alogrithmus anschauen und mir seine meinung dazu sagen ? vielleicht findet der eine oder andere noch paar sachen um den code zu beschleunigen ... anforderungen waren: input: string länge: 1-50 zeichen [a-z0-9_] output: integer länge: 10 ---------------------------------------------- function int_checksum($str) { $id = 0; $prev_c = 0; $str_len = strlen($str); for ($i=0; $i<$str_len; $i++) { /* value */ $c = ord(substr($str , $i , 1)); /* crossfoot */ $cf = 0; for ($j=0; $j<strlen($c); $j++) $cf += substr($c , $j , 1); /* difference */ $diff = abs($c - $prev_c); /* multiplying the data */ if ($diff > 0) $id += ($c * $cf * $diff); else $id += ($c * $cf); $prev_c = $c; } return str_pad($id, 10 , '0' , STR_PAD_RIGHT); } ---------------------------------------------- also, was meint ihr ? btw, das ding produziert eigentlich nur 7-stellige ids... -- Kai Meder kai_(at)_meder.info
php::bar PHP Wiki - Listenarchive