【问题标题】:Upgrating yourls - shortest time to create new url升级您的 - 创建新网址的最短时间
【发布时间】:2013-11-27 13:40:03
【问题描述】:

我正在考虑如何更改 yourls 以使新的缩短网址更快。我并没有真正看到它在代码中的位置,但是当“yourls”正在制作新的缩短 url 时,它会向数据库添加标题,所以我假设它必须打开给定的 url 并解析它以获取 url。我不需要它,也许它会导致短网址创建缓慢。我想过自己做一个网址缩短器,但我真的没时间了。

您觉得如何,我可以在 yourls 脚本中更改什么,以及我可以在哪里找到它正在搜索它的代码(我会不断将标题设置为“”,因为此列可以保留在数据库)。

【问题讨论】:

  • 您是否遇到性能缓慢的问题?仅将一个数据库值设置为 "" 不会对您有太大帮助。听起来您正在寻找一个不存在的问题。
  • github.com/YOURLS/YOURLS/search?q=title&ref=cmdform 导致 github.com/YOURLS/YOURLS/blob/… 具有函数 yourls_insert_link_in_db( $url, $keyword, $title = '' );但正如@jszobody 所说,它不会解决您的问题。也许提出问题是解决问题的更好方法? github.com/YOURLS/YOURLS/issues
  • 我有带有社交按钮的 Rails 应用程序,它需要缩短 url,所以我在 Controller 中生成缩短 url 以将其插入到这些社交链接中。如果我想生成新的,yourls 查找标题,并尝试打开它,rails 尝试生成新的 url...问题是我不需要 yourls 中的标题和任何 http 检查。没想到github有这么棒的搜索功能。

标签: php yourls


【解决方案1】:

如果您只想要一个轻量级的 URL 缩短器,那么自己编写可能是最简单的方法。看看我使用 DBM 的超级简单的缩短脚本。

<?php

header('Content-Type: text/plain');

// Add url
if (isset($_GET['add'])) {
    $db = dba_open("/tmp/shortner.db", "c", "db4");
    if (!$db) trigger_error("dba_open failed", E_USER_ERROR);

    $key = substr(base_convert(md5($_GET['add']), 10, 36), 0, 5);
    dba_insert($key, $_GET['add'], $db);
    dba_close($db);

    echo "http://{$_SERVER['HTTP_HOST']}/$key";
    exit();
}

// Get url
$db = dba_open("/tmp/shortner.db", "r", "db4");
if (!$db) trigger_error("dba_open failed", E_USER_ERROR);

if (isset($_GET['key']) && dba_exists($_GET['key'], $db)) {
    $url = dba_fetch($_GET['key'], $db);
}
dba_close($db);

if (!isset($url)) {
    header("HTTP/1.0 404 Not Found");
    echo "Not found $_GET[key]";
    exit();
}

header("Location: $url");
echo $url;

使用 .htaccess

RewriteEngine On
RewriteRule ^(\w{5})$ /index.php?key=$1

如果需要,您可以在执行直接操作之前轻松添加命中计数器。 (在这种情况下以“w”模式打开数据库)。

请注意,密钥基于 URL 的哈希,因此如果再次添加相同的 URL,它只会获得相同的密钥(因此缩短了 URL)。

【讨论】:

  • 太好了,谢谢。如果我不解决你的问题,我会使用它:)
【解决方案2】:

如果没有对您正在谈论的查询实际执行desc,我认为您不能假设这是问题所在。您需要分析整个脚本以找到它运行缓慢的位置。

【讨论】:

  • 我应该在前面提到它。这是rails应用程序试图在控制器中获取缩短的url,所以当为网页创建新的url时,它会打开这个页面,并尝试创建相同的url,这是循环的。
猜你喜欢
  • 2018-01-10
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 2014-12-02
相关资源
最近更新 更多