Я не могу понять, как оптимально сделать следующее в PHP: В базе данных у меня есть сообщения с уникальным идентификатором, например 19041985. Теперь я хочу сослаться на эти сообщения в сервисе коротких URL, но неиспользуя сгенерированные хэши, но просто «вычислите» исходный идентификатор.
Другими словами, например: http://short.url/sYsn7 должен позволить мне рассчитать идентификатор сообщения, который посетитель хотел бы запросить.1006 * Чтобы сделать это более очевидным, я написал следующее в PHP, чтобы сгенерировать эти «буквенно-цифровые версии идентификаторов», и, конечно, наоборот, позволит мне вычислить исходный идентификатор сообщения.1009 * Это оптимальный способ сделать это? Я так не думаю, но больше ничего не могу придумать.
$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;