mak*_*eee 12 php base64 encoding url-shortener
我正在创建一个链接缩短服务,我正在使用增量ID字段的base64编码/解码来创建我的URL.ID为"6"的网址为:http://mysite.com/Ng==
我还需要允许用户创建自定义网址名称,例如http://mysite.com/music
到目前为止,这是我的(可能是错误的)方法.帮助修复它将不胜感激.
当有人创建新链接时:
当有人创建新链接并传递自定义短网址时:
有没有更好的编码方法,可以让我把任何数量成短字符串,任何字符串转换成一个数字,这样我就可以随时查找短网址(无论是定制还是自动生成的)转动名字变成一个号码,查询链接ID等于那个数字?
vla*_*adr 11
首先,确保在ID和short_url_code列上存在unicity约束.
当有人创建新链接时:
ID从数据库中获取下一个最大的链接(出于性能原因,您应该真正使用它,autoincrement或者SEQUENCE取决于您的RDBMS提供的内容;否则请继续选择MAX(ID)+1)http://website.com/[short url name])IDbase64_encodelinks表格:ID, short_url_code, destination_url如果插入因违反约束而失败,请返回步骤1尝试新的ID; 你可能有违规行为,因为:
autoincrement或SEQUENCE,而且经常否则可能发生),和/或short_url_code已被用作自定义URL(除非有人试图在您的网站上造成麻烦,否则这种情况很少发生)如果插入成功,则提交并将短URL返回给用户
当有人创建新链接并传递自定义短网址时:
ID上面的步骤2 中生成短URL部分,而是使用short_url_code用户提供的自定义ID:返回步骤1尝试新的IDshort_url_code:向用户返回错误,要求他选择不同的自定义URL,因为他/她提供的短网址已被使用