עדיף להמנע מרקורסיה, או להציב הגבלה,
אני לא יודע עד כמה זה יכול לשמש אותך, לדעתי זו פונקציה מעולה: (הרגע כתבתי, בתור אתגר :P )
PHP קוד:
<?php
$string = 'jk129akmd21d<Scslac2130c.aD?CCAD>c0121klsda?>.SADC921lfsa';
function shortId($string = "")
{
if( $string == '' )
return;
$string = preg_replace("/[^a-z0-9]/i", "", pack('h*', md5($string)));
if( strlen($string) < 3 )
{
$string .= strtoupper(md5($string));
}
return substr($string, -3);
}
echo shortId($string);
?>