2018년 5월 11일 금요일

[PHP예제] 057 랜덤 문자열을 생성하고 싶을 때


generateRandomString.php 파일

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
function generateRandomString($length, $elem = flase)
{
  if( $length <= 0 )
  {
    return '';
  }

  if( $elem === false )
  {
    $elem = 'abcdefghijklmnopqrstuvwxyz';
  }

  if( !preg_match('/\A[\x21-\x7e]+\z/', $elem) )
  {
    die('랜덤 생성을 위한 문자열에 잘못된 문자가 포함되어 있습니다.');
  }

  $chars = preg_split('//', $elem, -1, PREG_SPLIT_NO_EMPTY);

  $chars = array_unique($chars);

  mt_srand((double) microtime() * 10000000);

  $str = '';
  $maxIndex = count($chars) - 1;
  for( $i = 0; $i < $length; $i++ )
  {
    $str .= $chars[mt_rand(0, $maxIndex)];
  }

  return $str;
}
?>

057.php 파일

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>랜덤 문자열을 생성하고 싶을 때</title>
</head>
<body>
<div>
<?php
require_once 'generateRandomString.php';

echo "<p>generateRandomString()함수<br>";
echo "10문자의 랜덤 문자열을 생성: ";
echo generateRandomString(10) . "<br>";
echo "abcde_!//$@만을 이용한 15문자의 문자열을 생성: ";
echo generateRandomString(15, 'abcde_!//$@') . "</p>";
?>
</div>
</body>
</html>




댓글 없음:

댓글 쓰기