Показать сообщение отдельно

  #647  
Старый 02.03.2009, 21:36
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
С нами: 10892546

Репутация: 2274


По умолчанию

Хотел себе красивые ссылочки как на youtube.com тоесть буковке, но короткие, ну в общем можно былобы рэндомом но они будут повторяться, и так можно генерить хз скока и будут они не короткие эти ссылки, вы чёто поняли? Я тоже нет
В общем нате
PHP код:
<?php
function symbols() {
    
$ret = array();
    for(
$i=ord('A');$i<=ord('Z');$i++) {
        
$ret[] = chr($i);
    }
    for(
$i=ord('a');$i<=ord('z');$i++) {
        
$ret[] = chr($i);
    }
    for(
$i=1;$i<=9;$i++) {
        
$ret[] = $i;
    }
    return 
$ret;
}

function 
url($chislo) {
    if(!
is_int($chislo) || $chislo 0) return false;
    
$symbols symbols();
    
$result '';
    
$system count($symbols);
    
    
$ostatok floor($chislo/$system);
    
$minus $chislo-($ostatok*$system);
    
$result $symbols[$minus].$result;
    
    while(
$chislo >= $system) {
        
$chislo $ostatok;
        
$ostatok floor($chislo/$system);
        
$minus $chislo-($ostatok*$system);
        
$result $symbols[$minus].$result;
    }
    
    return 
$result;
}

function 
deurl($str) {
    
$symbols symbols();
    
$id 0;
    
$system count($symbols);
    
$str strrev($str);
    for(
$i=0;$i<strlen($str);$i++) {
        
$key array_search($str[$i],$symbols);
        
$id += $key*pow($system,$i);
    }
    return 
$id;
}
?>
Например у нас в БД id 123456 вместо ?id=123456 выведем ?id=<?=url(123456)?>
И получица ?id=hK2
Обратно получаем ID deurl('hK2');
Тоесть
PHP код:
<?php
#functions
echo url(123456)."\r\n";
echo 
deurl('hK2');
?>
Код:
hK2
123456
Кто понял зачем это, юзайте
При написании скрипта постродал 1 мозг, 2 руки и 2 кружки чая, итого одно хлебо-булочное изделие
 
Ответить с цитированием