fastix®: erste freie ID in einer Lücke finden

Beitrag lesen

Moin!

kannst du sie ja in ein anderes URL vertraegliches, alphanumerisches System umwandeln (Hexadezimal zum Bleistift).

Da müsste schon ein größerer Klotz ran. Hier meine Funktionsbibliothek für derlei Fälle:

<?php  
  
function getBigNumArray() {  
return array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');  
#return array ('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');  
#return array ('0','1','2','3','4','5','6','7','8','9');  
#return array('0','L');  
}  
  
function getBigNumHash() {  
# kehrt den Array um. Es entsteht ein Hash  
   $ar = getBigNumArray();  
   $i = 0;  
   foreach ($ar as $element) {  
		$hash[$element] = $i++;  
   }  
return $hash;  
}  
  
function getNumberFromString($str) {  
# gibt die dezimale Entsprechung der (ganzen, positiven) Zahl aus dem beliebigen Zahlensystem zurück  
	$hash = getBigNumHash();  
	$number = 0;  
	$length = strlen($str);  
	for ( $i=$length; $i>0; $i-- ) {  
		$inv = $length-($i);  
		$char = $str{($i-1)};  
		if ($hash[$char] != 0) {  
			$add = pow(count($hash) ,$inv) * ($hash[$char]);  
		} else {  
			$add = 0;  
		}  
		$number = $number + $add;  
    }  
return $number;  
}  
  
  
function getStringFromNumber($int) {  
# gibt die Entsprechung aus dem beliebigen Zahlensystem für die eine positive, ganzzahlige Dezimalzahl zurück  
	$ar = getBigNumArray();  
	$length = count($ar);  
	$str = '';  
	$positions = 0;  
	while ( pow($length, ($positions)) <= $int ) {  
		$positions++;  
	}  
	$int;  
	for ( $i=$positions; $i>0; $i-- ) {  
		$potenz = pow($length, $i-1);  
		$pos = floor($int / $potenz);  
		$int = $int % $potenz;  
		$str = $str . $ar[$pos];  
	}  
return $str;  
}  
?>  

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix