我試圖做一個非常簡單的短URL重定向沒有數據庫。更快,如果可能的話更少的內存成本方法生成一個字母數字代碼?
這是我到目前爲止有:
<?php
$name = $_GET['file'];
$name = preg_replace("/[^A-Za-z0-9]/", '', $name);
$file = 'data/' . $name;
// File found
if (is_file($file))
{
// Read the first line, we don't use file_get_contents as the data folder is protected and must be read internally
$f = fopen($file, 'r');
$data = fgets($f);
fclose($f);
// Redirect to the real URL
header("Location: $data");
}
else
{
// What a shame the URL does not exist
header("Location: http://www.mydomain.com/");
}
exit();
?>
- 我想知道這將是更快,如果 可能更少的內存成本的方法來從 6〜8生成的字母數字代碼不會與 數據文件夾中存在的字符相沖突的字符?
我不需要將代碼返回到URL號,但我希望它是字母數字的,我不認爲它會使用8個字符的所有組合,這對於內部使用來說是基本的,所以將會有沒有在同一時間創建短網址,它不是一個公開的系統,只有一個人將控制所有簽名的短網址。這主要是爲什麼我正在研究什麼是生成字母數字代碼以便將其與數據目錄中的現有文件名匹配的最快方式,它並不像我最初所說的那樣只是想保持資源 – Guapo
處於最低使用狀態仍然有它儘可能快地處理,最初我們將有總共90000條目。 – Guapo
具有這麼多文件的單個目錄將導致我認爲的性能問題。考慮子目錄或將映射放入文件並將其讀入內存。 – qingbo