我不知道如何在 PHP 中以最佳方式执行以下操作:在数据库中,我有具有唯一 ID 的消息,例如 19041985。现在,我想在短 url 服务中引用这些消息,但不使用生成的哈希但只需“计算”原始 ID。
换句话说,例如:http://short.url/sYsn7应该让我计算访问者想要请求的消息 ID。
为了让它更明显,我在 PHP 中编写了以下代码来生成这些“字母数字 ID 版本”,当然,反过来让我计算原始消息 ID。
问题是:这是做到这一点的最佳方式吗?我几乎不这么认为,但想不出别的。
$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;