Valla anlamadıysan açıklaması baya zor olacak.
Mesela benim yazdığım koddaki 100.000 inci link her zaman jUz olacak.
altta kodu biraz düzenledim.
Eğer kopyalayıp yapıştırırsanız size 1.000.000 tane link verecek kısa link biraz zaman alabilir for un bir milyon kere dönmesi. Sen her seferinde bir önceki kısa linki fonksiyona yazarsan sana 1-1 artarak sürekli link vermeye deva edecek 2 katrilyon link bile alınsa siteden hiç biri birbiri ile aynı olmayacak.
1 milyonuncu link 2TIR bu olacak
yani sitenden tirilyonlarca link verebilirsin olacağı en fazla 6 karakter 
şöyle de anlatayım.
2 lik sayı sistemin de birler basamağı 2 değer alır biri 1 diğeri 0
10 luk sistemde 10 tane 0123456789
16 lık sistemde 16 tane 0123456789abcdef
65 lik istemde 65 tane 0,1,2,3,4,5,6,7,8,9,q,w,e,r,t,y,u,o,p,i,l,k,j,h,g, f,d,s,a,z,x,c,v,b,n,m,Q,W,E,R,T,Y,U,I,O,P,L,K,J,H, G,F,D,S,A,Z,X,C,V,B,N,M,-,_,+
sana ben 65 lik sayı sistemini kodladım diyorum sen bana karmaşık diyorsun. Zaten karmaşık olmasaydı şimdi binlerce kez yazılırdı senin yazdığın kodu arasan belki kaç tane çıkacak. Yazdığın kodda güzel fakat ordaki random kodunu neden kullandın anlamadım. Şimdi benim sitede bir milyon link alında bir milyonuncu 2TIR olacak senin sitendeki bir milyonuncu link ne olacak belli değil. bir milyon linkin içinde olmayan bir link bulması lazım senin kodunun düşünsene bir milyonluk rand kodunun için son kalan numarayı bulmak belki yıllar sürer.
kodun sonunu bununla değiştirebilirsiniz.
oreach ($chars as $degisken)
$sonuc.=$degisken;
return $sonuc;
}
$bul=0;
for($a=0;$a<1000000;$a++)
{
echo $bul.'<br />';
$bul=bul($bul,$dizi);
}en iyi ben size bir script yazıyım
hazıra alışmış olanlar zorluk çekmesin.
ordaki asdf9 burdaki 9'u 8 yapmanız birşeyi değiştirmez.