PHP code for generating decent-looking coupon codes (mix of letters and numbers)

前端 未结 10 1414
后悔当初
后悔当初 2020-12-15 21:56

For an ecommerce site I want to generate a random coupon code that looks better than a randomly generated value. It should be a readable coupon code, all in uppercase with n

相关标签:
10条回答
  • 2020-12-15 22:45

    http://webarto.com/35/php-random-string-generator

    Here you go.

    function randr($j = 8){
    $string = "";
        for($i=0;$i < $j;$i++){
            srand((double)microtime()*1234567);
            $x = mt_rand(0,2);
            switch($x){
                case 0:$string.= chr(mt_rand(97,122));break;
                case 1:$string.= chr(mt_rand(65,90));break;
                case 2:$string.= chr(mt_rand(48,57));break;
            }
        }
    return strtoupper($string); //to uppercase
    }
    
    0 讨论(0)
  • 2020-12-15 22:49

    Try this:

    substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10)
    
    0 讨论(0)
  • 2020-12-15 22:49

    you can find a lot of function in php rand manual
    http://php.net/manual/en/function.rand.php

    i like this one

       <?php
    //To Pull 8 Unique Random Values Out Of AlphaNumeric
    
    //removed number 0, capital o, number 1 and small L
    //Total: keys = 32, elements = 33
    $characters = array(
    "A","B","C","D","E","F","G","H","J","K","L","M",
    "N","P","Q","R","S","T","U","V","W","X","Y","Z",
    "1","2","3","4","5","6","7","8","9");
    
    //make an "empty container" or array for our keys
    $keys = array();
    
    //first count of $keys is empty so "1", remaining count is 1-7 = total 8 times
    while(count($keys) < 8) {
        //"0" because we use this to FIND ARRAY KEYS which has a 0 value
        //"-1" because were only concerned of number of keys which is 32 not 33
        //count($characters) = 33
        $x = mt_rand(0, count($characters)-1);
        if(!in_array($x, $keys)) {
           $keys[] = $x;
        }
    }
    
    foreach($keys as $key){
       $random_chars .= $characters[$key];
    }
    echo $random_chars;
    ?>
    
    0 讨论(0)
  • 2020-12-15 22:52
    function generateCouponCode($length = 8) {
      $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
      $ret = '';
      for($i = 0; $i < $length; ++$i) {
        $random = str_shuffle($chars);
        $ret .= $random[0];
      }
      return $ret;
    }
    
    0 讨论(0)
提交回复
热议问题