勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPでアクセスIPからランダム英数字のIDを作成

   2024/02/25  PHP

PHPで掲示板などにあるようなアクセスIPからランダム英数字のIDを作成したかった。以下にほしい機能とソースをメモ。

 

ほしい機能

  • IPアドレスもしくは会員IDなどからランダムIDを作成
  • 日付によってランダムIDを変えたり変えなかったりする
  • ランダムIDの桁数も決めたい

 

ソースコード

//----------------------------------------
//    $limit(int) ランダムIDの桁数。デフォルトは10桁。
//    $daily(bool) 日付によってIDを変えるかどうか。デフォルトは変えない。
//    $free(text) 閲覧者のIPやユーザーID等、自由入力。空の場合は閲覧者のIPを使用。
//----------------------------------------
function createId( $limit = 10, $daily = false, $free = '' )
{
    $daily_md5 = ( $daily ) ? md5(date('Y-m-d')): '';
    $free_md5 = ( $free ) ? md5( $free ) : md5( $_SERVER['REMOTE_ADDR'] );

    $id = substr(base64_encode($daily_md5 . $free_md5), 0, $limit);

    return $id;
}

 - PHP

  関連記事

「lz-string」ライブラリで圧縮した文字をPHPで展開する際に文字化けする場合の対応方法
「lz-string」ライブラリで圧縮した文字をPHPで展開する際に文字化けする場合の対応方法

以前、JavaScript / PHPにて「lz-string」を用いてデータの ...

PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)

請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...

PHPにてhosts設定を行った上で他サイト・サーバにアクセスする方法
PHPにてhosts設定を行った上で他サイト・サーバにアクセスする方法

開発中の案件だとhosts設定を行ってサーバにアクセスする、ということがある。作 ...

PHPのHTTPリクエストライブラリ「Requests for PHP」の利用方法
PHPのHTTPリクエストライブラリ「Requests for PHP」の利用方法

PHPで外部のAPI等にリクエストする際に可能であればfile_get_cont ...

PHPで複数の変数に同じ値を代入する方法(多重代入 / 一括代入 / 同時代入)
PHPで複数の変数に同じ値を代入する方法(多重代入 / 一括代入 / 同時代入)

PHPのソースコード上に「$a = $b = $c = 12;」みたいな見たこと ...