ホームページ >バックエンド開発 >PHPチュートリアル >文字列から一意の64ビット整数を作成する方法

文字列から一意の64ビット整数を作成する方法

William Shakespeare
William Shakespeareオリジナル
2025-02-20 12:15:10374ブラウズ

PHPの組み込みmd5()関数は、指紋を作成するのに役立つ32文字の16進数文字列を生成します。 ただし、URLSから一意の64ビット整数指紋を生成するには、特にデータベースインデックス効率を扱う場合、異なるアプローチが必要です。 この記事では、これらの一意のIDを作成するためのソリューションを詳しく説明し、URLカノネ化と効率的な64ビット整数変換に焦点を当てています。

How to Create a Unique 64bit Integer from String

主要な考慮事項:

  • url canonization:異なるURLは、同じページを指すことができます(たとえば、クエリパラメーターのバリエーション)。 Canonizationは一貫した表現を作成し、同一のページに同一のIDがあることを確認します。 これには、ハッシュマーク(#)の後にプロトコルを削除し、フラグメントを無視することが含まれます。
  • 64ビット整数変換:64ビット整数を使用したPHPの固有の制限は、信頼できる変換のためにGMPライブラリを使用する必要があります。
  • 課題:
  • ダイナミックウィジェット開発のためにユニークな64ビット整数IDをWebページに効率的に割り当て、URLの非効率的なテキストベースのインデックス作成を回避します。

ソリューションの分解:

url canonization:

提供された
    関数はURLを標準化します。 URLを下ろし、ホストとパスを抽出し、クエリ文字列を処理します。
  1. 関数は、クエリパラメーターを一貫性のために辞書化し、重複パラメーターを処理し、RFC 3986に準拠したURLエンコードを適用します。

    canonizeUrl()文字列からint64変換:canonizeQueryString()

    関数は、GMPライブラリを使用して、カノー化されたURLを64ビット整数に変換します。 MD5ハッシュの最初の16文字(効率のため)を取り、それらを16進数として解釈します。
  2. 関数の組み合わせ:get64BitHash()関数は上記の手順を組み合わせて、完全なソリューションを提供します。URLをCanonizeしてから、64ビットの整数ハッシュに変換します。

  3. コードの例: urlTo64BitHash()

、および

のコードの例は、元の入力と同じままです。)

パフォーマンスと衝突テスト:

結論:このアプローチは、効率的なデータベースインデックス作成と一意の識別子生成を必要とするアプリケーションに適したURLから一意の64ビット整数IDを生成するための堅牢で効率的な方法を提供します。 GMPの使用は、PHPの制限を克服し、URLカヌー化により一貫性が保証されます。

よくある質問(FAQS):(FAQSセクションは、元の入力とほぼ同じままであり、明確さと一貫性のための軽微な文言の調整があります。

以上が文字列から一意の64ビット整数を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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