2013-11-14 3 views
0

yourls을 어떻게 단축하여 새로운 단축 URL을 더 빠르게 만들 수 있을지 생각하고 있습니다. 나는 코드에서 어디에 있는지 정말로 모르지만 "yourls"가 새로운 단축 URL을 만들 때 데이터베이스에 제목을 추가하므로 주어진 URL을 열고 URL을 파싱해야한다고 가정합니다. 나는 그것을 필요로하지 않으며 어쩌면 그 짧은 URL이 천천히 만들어지게 만든다. 나는 나의 자신의 URL 단축기를 만드는 것에 대해 생각했지만, 나는 정말로 시간이 없다.Upgrating yourls - 새로운 URL을 만드는 가장 짧은 시간

당신이 생각하기에, 내가 당신의 스크립트에서 바꿀 수있는 것이 무엇인지, 어디에서 코드를 찾을 수 있는지 (나는 계속 제목을 붙일 것입니다. " 지금은 데이터베이스).

+0

성능 문제가 있습니까? 단 하나의 데이터베이스 값을 ""로 설정하면 도움이되지 않습니다. 존재하지 않는 문제를 찾고있는 것 같습니다. – jszobody

+1

https://github.com/YOURLS/YOURLS/search?q=title&ref=cmdform https://github.com/YOURLS/YOURLS/blob/546057fc5ad1ea6158251679ab13b0d630da6ddd/includes/functions.php로 이동하여 yourls_insert_link_in_db ($ url , $ keyword, $ title = ''); 그러나 @ jszobody가 말했듯이, 그것은 당신의 문제를 해결하지 않을 것입니다. 어쩌면 문제를 제기하는 것이 문제 해결의 더 좋은 방법일까요? https://github.com/YOURLS/YOURLS/issues – x29a

+0

나는 단축 URL을 가져야하는 사회적인 단추가있는 레일 응용 프로그램을 가지고 있으므로 컨트롤러에서 단축 링크를 생성하여 해당 소셜 링크에 삽입합니다. 내가 새로운 것을 생성하고 싶다면, yourls는 제목을 찾아 그것을 열려고 시도하고, 레일은 새로운 URL을 생성하려고 시도합니다. 문제는 내가 yourls와 http 검사에서 제목이 필요 없다는 것입니다. 나는 github이 훌륭한 검색 기능을 가지고 있다는 것을 몰랐다. –

답변

0

당신이 말하는 질문에 실제로 desc을 쓰지 않고도 나는 그것이 문제라고 생각할 수 있다고 생각하지 않습니다. 천천히 실행되는 부분을 찾기 위해 전체 스크립트를 프로파일 링해야합니다.

+0

이전에 언급해야합니다. 컨트롤러에서 url 단축을 시도한 레일 applcation이므로 웹 페이지에 대한 새 URL이 만들어지면이 페이지가 열리고 동일한 URL이 반복됩니다. –

1

가벼운 URL 단축키를 원한다면 직접 작성하는 것이 가장 쉬운 방법 일 것입니다. DBM을 사용하는 나의 간단한 간단한 단축 스크립트를보십시오. 당신이 그것을 필요로하는 경우에 htaccess로

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

<?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; 

은 쉽게 그냥 직접 작업을 수행하기 전에, 히트 카운터를 추가 할 수 있습니다. (이 경우 'w'모드에서 DB를 엽니 다.)

키는 URL의 해시를 기반으로하므로 동일한 URL을 다시 추가하면 동일한 키 (따라서 단축 URL)를 얻게됩니다.

+0

정말 고마워. 고마워. 내가 너를 고치지 않으면 나는 그것을 사용할 것이다 :) –