勉強したことのメモ

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

  関連記事

PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法
PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法

迷惑メール対策等でメール本文が日本語のもののみ受信したい場合がある。ただ、本文内 ...

imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法

imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...

PHPでeval実行時に「eval()'d code on line」エラー
PHPでeval実行時に「eval()'d code on line」エラー

PHPでeval実行時に「eval()'d code on line 〇〇」とい ...

PHP8系からは文字列検索はstrposよりstr_containsが良さそう
PHP8系からは文字列検索はstrposよりstr_containsが良さそう

PHP8.0のアップデートに関する記事を読んでいたところstr_contains ...

PHPでLINEログイン後「ユーザー名」「ユーザーID」「プロフィール画像URL」「メッセージ」を取得する方法
PHPでLINEログイン後「ユーザー名」「ユーザーID」「プロフィール画像URL」「メッセージ」を取得する方法

<a>タグのリンクからページ遷移するとLINEログインし、その後に「 ...