php生成隨機字符串函數(支持字母大小寫,數字,中文)

efy6 9年前發布 | 1K 次閱讀 PHP

/**
 +----------------------------------------------------------

  • 產生隨機字串, 可用來自動生成密碼,驗證碼,表單令牌等
  • 默認長度6位 字母和數字混合 支持中文 +----------------------------------------------------------
  • @param string $len 長度
  • @param string $type 字串類型
  • 0 字母 1 數字 其它 混合
  • @param string $addChars 額外字符 +----------------------------------------------------------
  • @return string +---------------------------------------------------------- */ function rand_string($len = 6, $type = '', $addChars = '') { $str = ''; switch ($type) {
     case 0 :
         $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' . $addChars;
         break;
     case 1 :
         $chars = str_repeat('0123456789', 3);
         break;
     case 2 :
         $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . $addChars;
         break;
     case 3 :
         $chars = 'abcdefghijklmnopqrstuvwxyz' . $addChars;
         break;
     default :
         // 默認去掉了容易混淆的字符oOLl和數字01,要添加請使用addChars參數
         $chars = 'ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789' . $addChars;
         break;
    
    } if ($len > 10) { //位數過長重復字符串一定次數
     $chars = $type == 1 ? str_repeat($chars, $len) : str_repeat($chars, 5);
    
    } if ($type != 4) {
     $chars = str_shuffle($chars);
     $str = substr($chars, 0, $len);
    
    } else {
     // 中文隨機字
     for ($i = 0; $i < $len; $i++) {
         $str .= msubstr($chars, floor(mt_rand(0, mb_strlen($chars, 'utf-8') - 1)), 1);
     }
    
    } return $str; } </pre>
 本文由用戶 efy6 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!