PHP ile boyutu (küçük (geniş) tamsayı haritasına nasıl (alfanümerik dize? (Cantor?)

0 Cevap php

I can't figure out how to optimally do the following in PHP: In a database, I have messages with a unique ID, like 19041985. Now, I want to refer to these messages in a short-url service but not using generated hashes but by simply 'calculate' the original ID.

Diğer bir deyişle, örneğin: http://short.url/sYsn7 ziyaretçi talep etmek istiyorum bana mesaj kimliğini hesaplamak izin vermelisiniz.

Daha belirgin hale getirmek için, ben bu 'alfanümerik Kimlik sürümlerini' oluşturmak için ve tabii ki, tersi bana orijinal ileti kimliği hesaplamak sağlayacak PHP aşağıdaki yazdı.

Is this the optimal way of doing this? Ben pek öyle düşünüyorum, ama başka bir şey düşünemiyorum: sorudur.

$alphanumString = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_';
for($i=0;$i < strlen($alphanumString);$i++)
{
 $alphanumArray[$i] = substr($alphanumString,$i,1);
}



$id = 19041985;

$out = '';
for($i=0;$i < strlen($id);$i++) {

 if(isset($alphanumString["".substr($id,$i,2).""]) && strlen($alphanumString["".substr($id,$i,2).""]) > 0) {
  $out.=$alphanumString["".substr($id,$i,2).""];
 } else {
  $out.=$alphanumString["".substr($id,$i,1).""];
  $out.=$alphanumString["".substr($id,($i+1),1).""];
 }
 $i++;
}

print $out;

0 Cevap