- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我刚找到这个 great tutorial,因为它是我需要的东西。
但是,看了之后,似乎这可能是低效的。它的工作方式是,首先生成一个唯一键,然后检查它是否存在于数据库中以确保它确实是唯一的。然而,数据库越大,函数越慢,对吧?
相反,我在想,有没有办法向这个函数添加排序?所以所有要做的就是检查数据库中的先前条目并增加 key 。所以它永远是独一无二的?
function generate_chars()
{
$num_chars = 4; //max length of random chars
$i = 0;
$my_keys = "123456789abcdefghijklmnopqrstuvwxyz"; //keys to be chosen from
$keys_length = strlen($my_keys);
$url = "";
while($i<$num_chars)
{
$rand_num = mt_rand(1, $keys_length-1);
$url .= $my_keys[$rand_num];
$i++;
}
return $url;
}
function isUnique($chars)
{
//check the uniqueness of the chars
global $link;
$q = "SELECT * FROM `urls` WHERE `unique_chars`='".$chars."'";
$r = mysql_query($q, $link);
//echo mysql_num_rows($r); die();
if( mysql_num_rows($r)>0 ):
return false;
else:
return true;
endif;
}
最佳答案
小 url 人们喜欢使用随机标记,因为这样你就不能只控制小 url 链接。 “#2去哪儿了?” “哦,酷!” “#3 去哪儿了?” “更酷!”您可以输入随机字符,但不太可能输入有效值。
因为键相当稀疏(4 个值,每个值有 36* 种可能性给你 1,679,616 个唯一值,5 给你 60,466,176)冲突的机会很小(实际上,这是设计的理想部分)和一个很好的 SQL 索引将使查找变得微不足道(实际上,这是对 url 的主要查找,因此他们会围绕它进行优化)。
如果您真的想避免查找而只是取消自动递增,您可以创建一个函数,将整数转换为看似随机的字符串,并能够转换回来。所以“1”变成“54jcdn”,“2”变成“pqmw21”。类似于 Base64 编码,但不使用连续字符。
(*) 实际上我喜欢使用少于 36 个字符——单大小写,没有元音,也没有相似的字符(1、l、I)。这可以防止意外的脏话,也可以让某人更容易向其他人说出值(value)。我什至将相似的字符映射到彼此,接受“0”作为“O”。如果您完全基于机器,则可以使用大写和小写以及所有数字以获得更大的可能性。
关于php - 创建你自己的 TinyURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075409/
题目地址:https://leetcode.com/problems/encode-and-decode-tinyurl/description/ 题目描述 TinyURL is a URL sh
我刚开始学习 python,对如何实现这一点很感兴趣。在寻找答案的过程中,我遇到了这项服务:http://www.longurlplease.com 例如: http://bit.ly/rgCbf可以
我查看了 tinyurl、tinypic、imgur 和 youtube!我认为他们会使用索引的文本安全表示并将其用作他们数据库中的主要 ID。但是,尝试将 key 放入 Convert.FromBa
我有以下代码,可提交指向 Tinyurl 的链接: for u in tinyurl.create('http://audiotechracy.blogspot.co.uk/2014/03/revie
我刚找到这个 great tutorial,因为它是我需要的东西。 但是,看了之后,似乎这可能是低效的。它的工作方式是,首先生成一个唯一键,然后检查它是否存在于数据库中以确保它确实是唯一的。然而,数据
前不久做了一个优惠劵的分享功能,其中一个功能就是生成一个优惠劵分享短链接。生成的短链接要求每个链接都是唯一的,并且长度尽可能短。在网上查了一下相关的思路,发现了一个不错的算法。这个算法的思路就是用[
有没有人知道一种算法可以从字符串(url)生成看起来像 tinyurl 哈希的哈希 我认为要求是 区分大小写 短的 仅数字和字母 还要别的吗? 最佳答案 我不认为 tinyurl 会散列字符串;他们有
我需要从 shorten 库中捕获 TinyUrl 方法的返回。我正在尝试将此返回值存储在 shortUrl 变量中,然后将其保存在数据库中,如下所示: import TinyUrl from 'ti
在 PHP 中,如何复制 tinyurls 的扩展/收缩功能,就像在 search.twitter.com 上一样? 最佳答案 如果你想找出一个 tinyurl 的去向,使用 fsockopen 在端
抱歉,如果这是一个愚蠢的问题,但是我该如何将项目添加到列表中?所以我得到的是一个循环,它基本上运行并尝试将所有网址从网络 scraper 转换为tinyurls。它仍然为 images_short 生
我正在尝试构建一个 jQuery 函数,该函数允许我出于微博原因(是的,twitter)从其他一些链接生成 TinyURL...我从 James Padolsey 找到了本教程,但没有得到回复通话回来
function ShortUrl(bigurl) { $.getJSON( "http://tinyurl.com/api-create.php", url: 'http://dfsghd
我在我的一个 Web 应用程序中使用 TinyURL API。到目前为止,它运行良好,但是今天发生了错误,我不知道为什么:自 9 月份以来我没有修改我的脚本! 下面是我使用的代码: function
我正在写一篇关于 Guid/UID 的人类可读替代品的小文章,例如 TinyURL 上用于 url 哈希的那些(通常印在杂志上,因此需要简短)。 我生成的简单 uid 是 - 6 个字符:小写字母 (
我正在构建一个新的网络应用程序,该应用程序需要生成一个内部短 URL,以便将来使用,以便用户轻松返回具有很长 URL 的特定页面。我最初的想法是将一个数字存储在数据库中并以十六进制值输出,以
我浏览过有关 SO 的类似问题,但似乎找不到一个解决看似简单的调用的问题.. function TweetThis(url) { $.ajax({ url: "http://tin
在 http://blog.memsql.com/common-pitfalls-in-writing-lock-free-algorithms/ 的末尾, David Stolp 展示了无锁堆栈的性
我们使用超长哈希值在我们的应用程序中注册新用户。问题是这些哈希在某些电子邮件客户端中被破坏 - 导致链接无法使用。 我尝试通过一个简单的调用实现 Tinyurl - API,但我认为它有时会超时...
我遇到了一个问题,我需要将超过 2000 个字符从我的 Flash 应用程序传递到一个 HTML 页面,该页面读取信息并显示该人来自的 Flash 应用程序中所做的正确选项。 一切都很好,但在最后阶段
比如我想缩短这个url:https://docs.python.org/3/library/subprocess.html#popen-constructor 我尝试将 https://docs.py
我是一名优秀的程序员,十分优秀!