
02.03.2009, 21:36
|
|
Постоянный
Регистрация: 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');
?>
Кто понял зачем это, юзайте
При написании скрипта постродал 1 мозг, 2 руки и 2 кружки чая, итого одно хлебо-булочное изделие
|
|
|