Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie lange Links in kurze Links in PHP

So konvertieren Sie lange Links in kurze Links in PHP

PHPz
PHPzOriginal
2023-04-19 09:16:571331Durchsuche

In der riesigen Welt des Internets sind lange Links zu einem unvermeidlichen Teil des täglichen Lebens geworden. Lange Links machen es den Leuten nicht nur schwer, sich daran zu erinnern, sie sind auch vom Textlayout her sehr unansehnlich. Wie kann man also lange Links in kurze Links umwandeln? PHP ist eine weit verbreitete Programmiersprache. In diesem Artikel wird erläutert, wie Sie mit PHP einfach lange Links in kurze Links umwandeln.

Eine kurze Einführung in Kurzlinks

Ein Kurzlink ist ein spezieller Link, der auf dem Internet basiert. Er verwendet einen speziellen Algorithmus, um lange Links in kurze Links umzuwandeln und so die Ästhetik, Lesbarkeit und Teilbarkeit des Links zu verbessern. Kurze Links liegen im Allgemeinen in Form kurzer Zeichenfolgen vor, die normalerweise nur 10 bis 20 Zeichen lang sind. Durch die Umwandlung langer Links in kurze Links kann der Link nicht nur bequemer geteilt und verbreitet werden, sondern es können auch die Besuche besser gezählt werden des Links.

So generieren Sie Kurzlinks mit PHP

Das Generieren von Kurzlinks muss in zwei Schritte unterteilt werden. Der erste Schritt besteht darin, den Algorithmus zur Generierung von Kurzlinks zu entwerfen, und der zweite Schritt besteht darin, die Kurzlinks in der Datenbank zu speichern Analysieren Sie die kurzen Links bei der Abfrage. Holen Sie sich lange Links und springen Sie.

Entwerfen Sie einen Algorithmus zur Generierung von Kurzlinks.

Normalerweise muss der Algorithmus zur Generierung von Kurzlinks die folgenden Anforderungen erfüllen:

1 Der generierte Kurzlink muss eindeutig sein und darf sich nicht wiederholen.

2. Der generierte Kurzlink sollte so nah wie möglich an einer Kurzzeichenfolge sein.

3. Der generierte Kurzlink muss umkehrbar sein, das heißt, der Langlink kann über den Kurzlink wiederhergestellt werden.

Derzeit gibt es zwei häufig verwendete Algorithmen für kurze Links. Zu den häufig verwendeten Algorithmen gehören MD5 und Base64, aber die kurze Linklänge ist länger Wiederholt; ein anderer Algorithmus besteht darin, lange Links in kurze Dezimal- oder Hexadezimalzahlen umzuwandeln und sie basierend auf dem aktuellen Zeitstempel und benutzerdefinierten Werten zu generieren. Dieser Algorithmus ist schneller zu generieren und die generierten kurzen Links sind kürzer und werden nicht wiederholt .

Als nächstes stellen wir die PHP-Implementierungsmethode vor, bei der der zweite Algorithmus zum Generieren kurzer Links verwendet wird.

Zuerst definieren wir einige Variablen:

$url = 'http://www.example.com/longurl'; //待转换的长链接
$base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; //定义62进制字符
$prefix = 'http://s.com/'; //自定义短链接前缀

Als nächstes müssen wir den langen Link in einen dezimalen oder hexadezimalen kurzen Link umwandeln:

$hex = md5($url);
$hexLen = strlen($hex);
$subHexLen = $hexLen / 8;
$output = array();

for ($i = 0; $i < $subHexLen; $i++) {
    $subHex = substr($hex, $i * 8, 8);
    $int = 0x3FFFFFFF & (1 * (&#39;0x&#39; . $subHex));
    $out = &#39;&#39;;
    for ($j = 0; $j < 6; $j++) {
        $val = 0x0000003D & $int;
        $out .= $base[$val];
        $int = $int >> 5;
    }
    $output[] = $out;
}

$key = array_rand($output);
$shortUrl = $prefix . $output[$key];

Im obigen Code verwenden wir zuerst md5, um den langen Link zu verschlüsseln und dann zu verarbeiten das verschlüsselte Ergebnis und wandeln es in einen dezimalen oder 62-stelligen Kurzlink um. Als nächstes wird aus mehreren Kurzlinks ein Kurzlink ausgewählt, indem zufällig ein eindeutiger Schlüsselwert generiert wird, und schließlich werden das benutzerdefinierte Präfix und der ausgewählte eindeutige Kurzlink in den endgültigen Kurzlink gespleißt.

Speichern Sie den Kurzlink in der Datenbank

Im obigen Code haben wir den Kurzlink generiert, ihn aber noch nicht in der Datenbank gespeichert. Hier verwenden wir die MySQL-Datenbank, um den Kurzlink in der Datenbank zu speichern folgt:

include 'config.php'; //包含数据库连接配置文件
$long_url = 'http://www.example.com/longurl'; //长链接

//生成短链接的代码
$hex = md5($long_url);
$hexLen = strlen($hex);
$subHexLen = $hexLen / 8;
$output = array();

for ($i = 0; $i < $subHexLen; $i++) {
    $subHex = substr($hex, $i * 8, 8);
    $int = 0x3FFFFFFF & (1 * (&#39;0x&#39; . $subHex));
    $out = &#39;&#39;;
    for ($j = 0; $j < 6; $j++) {
        $val = 0x0000003D & $int;
        $out .= $base[$val];
        $int = $int >> 5;
    }
    $output[] = $out;
}

$key = array_rand($output);
$short_url = $prefix . $output[$key];

//将短链接存储到数据库中
$insert_sql = "INSERT INTO `short_url` (`long_url`, `short_url`, `create_time`) VALUES ('{$long_url}', '{$short_url}', NOW())"; //将长链接和短链接插入数据库中
$conn->query($insert_sql); //执行插入操作
$conn->close(); //关闭数据库连接

Im obigen Code definieren wir zwei Variablen long_url und short_url, um lange Links bzw. kurze Links zu speichern, und fügen dann die langen Links und kurzen Links durch Einfügen von SQL-Anweisungen in die short_url-Tabelle ein. Unter anderem speichert das Feld create_time die Zeit, zu der der Kurzlink erstellt wurde, und der Datentyp ist DATETIME.

Über den kurzen Link zum langen Link springen

Schließlich müssen wir den kurzen Link analysieren, den entsprechenden langen Link aus der Datenbank abfragen und springen. Der Code wird wie folgt implementiert:

include 'config.php'; //包含数据库连接配置文件
$short_url = 'http://s.com/abcd'; //短链接

//从数据库中查询出对应的长链接
$select_sql = "SELECT long_url FROM `short_url` WHERE `short_url`='{$short_url}'";
$result = $conn->query($select_sql); //执行查询操作
$row = $result->fetch_array(MYSQLI_ASSOC);

//跳转到长链接
if ($row) {
    $long_url = $row['long_url'];
    header('location:' . $long_url); //跳转到原来的长链接
    exit;
} else {
    echo '短链接不存在'; //如果短链接不存在,则输出短链接不存在
}
$conn->close(); //关闭数据库连接

Im obigen Code fragen wir zuerst die Datenbank mit dem Kurzlink als Parameter ab, suchen den entsprechenden Langlink und springen, falls vorhanden, den Benutzer zum Langlink, andernfalls zur Ausgabe Kurzlink existiert nicht.

Zusammenfassung

php ist eine weit verbreitete Programmiersprache. Wenn Sie sich mit der grundlegenden Syntax und Funktionsbibliothek von PHP vertraut machen, können Sie die Funktion der Umwandlung langer Links in kurze Links leicht erkennen. Obwohl der in diesem Artikel vorgestellte Algorithmus zum Generieren kurzer Links nicht der komplexeste ist, weist er eine gute Rechengeschwindigkeit und Eindeutigkeit der Links auf und ist für die meisten Anwendungsszenarien geeignet. Es wird empfohlen, dass Leser den Code entsprechend den tatsächlichen Anforderungen verbessern, um die Stabilität und Abfragegeschwindigkeit der Kurzlinkgenerierung zu verbessern.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie lange Links in kurze Links in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn