View difference between Paste ID: 0265hdYD and TC45zaRQ
SHOW: | | - or go back to the newest paste.
1
<?php
2
3
class SerialGenerator
4
{
5
    public function generate()
6
    {
7
        $serial = array();
8
        $key = array_merge(
9
            range('a', 'z'),
10
            range(0, 9)
11
        );
12
13
        do {
14
            $serial[] = $key[array_rand($key, 1)];
15
        } while (count($serial) < 12);
16
17
        return implode('', $serial);
18
    }
19
20
    public function start($amount = 100)
21
    {
22
        $results = array();
23
24
        for ($i = 0; $i < $amount; $i++) {
25
            $gen = $this->generate();
26
27
            do {
28
                $gen = $this->generate();
29
                srand(microtime() * 10000000);
30
            } while (in_array($gen, $results) === true);
31
32
            $results[] = $gen;
33
34
            var_dump("{$i} " . $this->colorize($gen));
35
        }
36
    }
37
38
    public function colorize($text, $status = 'SUCCESS') {
39
        $out = '';
40
41
        switch($status) {
42
            case 'SUCCESS':
43
                $out = '[42m'; //Green background
44
                break;
45
            case 'FAILURE':
46
                $out = '[41m'; //Red background
47
                break;
48
            case 'WARNING':
49
                $out = '[43m'; //Yellow background
50
                break;
51
            case 'NOTE':
52
                $out = '[44m'; //Blue background
53
                break;
54
        }
55
56
        return chr(27) . "$out" . "$text" . chr(27) . "[0m";
57
    }
58
}