ホームページ  >  記事  >  バックエンド開発  >  PHP で URL 短縮 Web サイトのような短いハッシュを生成するにはどうすればよいですか?

PHP で URL 短縮 Web サイトのような短いハッシュを生成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-19 11:54:29640ブラウズ

How to Generate Short Hashes Like URL-Shortening Websites in PHP?

ショート ハッシュ用の PHP 関数: URL 短縮 Web サイトの秘密を明らかにする

Web 開発の分野では、URL 短縮は重要な機能となっています。簡潔で記憶に残るリンクを作成するために不可欠なツール。これを実現するために、tinyurl.com のような特殊な Web サイトでは、入力文字列やファイルから短いハッシュを生成する高度なアルゴリズムが採用されています。

私たちの目標は、このタスクを実行してコンパクトなハッシュを作成できる PHP の同様の関数を発見することです。 8文字以内にしてください。興味深いことに、その答えはハッシュ アルゴリズムにあるのではなく、さまざまな数値ベースの巧妙な使用にあります。

TinyURL の魔法を解読する

一般に信じられていることに反して、TinyURL は短いリンクを生成するためにハッシュに依存しないでください。代わりに、Base 36 の整数、または小文字と大文字の両方を含む Base 62 を使用します。これにより、多数の一意のレコードを簡潔な表現にマッピングできます。

Base 36 と整数間の変換

短いハッシュを作成するには、PHP のビルドされた-in 基数 36 と 10 進整数の間で変換する関数:

基数 36 から整数への場合:

<code class="php">intval($str, 36);</code>

整数から基数 36 への変換:

<code class="php">base_convert($val, 10, 36);</code>

ハッシュの代替手段

ハッシュの代わりに Base 36 を使用すると、いくつかの利点が得られます。まず、ハッシュ衝突のリスクが排除されます。次に、実際の ID を明らかにすることなく、URL がデータベースにすでに存在するかどうかを簡単に判断できます。

結論

ハッシュ関数は確かにその役割を果たします。暗号化、代替数値ベースは、PHP で短いハッシュを生成するための、より効率的で衝突防止のアプローチを提供します。この手法を採用することで、開発者は、よりスムーズな Web エクスペリエンスを促進する、コンパクトで記憶に残るリンクを作成できます。

以上がPHP で URL 短縮 Web サイトのような短いハッシュを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。