升级你的网址 - 创建新网址的最短时间

时间:2013-11-14 13:51:40

标签: php yourls

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

你怎么想,我可以在你的脚本脚本中改变什么,我可以在它搜索它的代码中找到它(我只是将标题设置为“”,因为这个专栏可以保留在现在的数据库)。

2 个答案:

答案 0 :(得分: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)。

答案 1 :(得分:0)

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