GVKun编程网logo

PHP生成唯一的促销/优惠/折扣码(附源码)(php实现商品的折扣效果)

18

想了解PHP生成唯一的促销/优惠/折扣码(附源码)的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于php实现商品的折扣效果的相关问题,此外,我们还将为您介绍关于3种php生成唯一id的方法、

想了解PHP生成唯一的促销/优惠/折扣码(附源码)的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于php实现商品的折扣效果的相关问题,此外,我们还将为您介绍关于3种php生成唯一id的方法、3种php生成唯一id的方法_PHP、php – Laravel – 生成唯一的订单号、php – 如何生成唯一的6位数代码的新知识。

本文目录一览:

PHP生成唯一的促销/优惠/折扣码(附源码)(php实现商品的折扣效果)

PHP生成唯一的促销/优惠/折扣码(附源码)(php实现商品的折扣效果)

每一个电子商务网站,现在有一种或多种类型的优惠/折扣/优惠券系统,给大家分享一下如何在PHP生成唯一的促销/折扣码。主要是实现一个优惠码系统,可用于跟踪用户来自某些特定的来源,例如有些主机促销的时候链接到别的页面会有优惠码生成,还有更多的促销代码等。因此,今天将讨论这样一个优惠码的实现过程

考虑的需求


代码应该很容易记住,因此保持短的长度是一个好主意,使用户可以很容易地记住它
没有特殊字符!它应该是字母数字组合,因为它会永远是为用户更容易记住
长度推广/折扣代码的正确。没有一个标准的长度,因为它取决于你想生成的长度,例如,如果你想生成1000代码的代码,那么你需要在至少4个字符代码。促销/优惠码长度通常为4到8个字符,但它取决于您的要求。
那好吧,让我们开始吧!让我们来看看代码,然后我会详细解释。它很容易
<div><adata="69396"id="copybut69396" onclick="doCopy('code69396')"> 代码如下:

3种php生成唯一id的方法

3种php生成唯一id的方法

《PHP实战:3种PHP生成唯一id的方法》要点:
本文介绍了PHP实战:3种PHP生成唯一id的方法,希望对您有用。如果有疑问,可以联系我们。

PHP教程小编在网上查了许多关于PHP生成唯一id办法的文章,发现有很多的办法,特整理本文与大家分享PHP生成唯一id的解决办法,希望大家喜欢.

PHP教程1、md5(time() . mt_rand(1,1000000));

PHP教程  这种办法有一定的概率会出现重复

PHP教程2、PHP内置函数uniqid()

PHP教程  uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.

PHP教程  w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数".

PHP教程下面办法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872

PHP教程
function uuid() {
  if (function_exists ( 'com_create_guid' )) {
    return com_create_guid ();
  } else {
    mt_srand ( ( double ) microtime () * 10000 ); //optional for PHP 4.2.0 and up.随便数播种,4.2.0以后不需要了.
    $charid = strtoupper ( md5 ( uniqid ( rand (),true ) ) ); //根据当前时间(微秒计)生成唯一id.
    $hyphen = chr ( 45 ); // "-"
    $uuid = '' . //chr(123)// "{"
substr ( $charid,8 ) . $hyphen . substr ( $charid,8,4 ) . $hyphen . substr ( $charid,12,16,20,12 );
    //.chr(125);// "}"
    return $uuid;
  }
}

PHP教程com_create_guid()是PHP自带的生成唯一id办法,PHP5之后貌似已经没有了.
3、官方uniqid()参考手册有用户提供的办法,结果类似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}

PHP教程
public function create_guid($namespace = '') {  
  static $guid = '';
  $uid = uniqid("",true);
  $data = $namespace;
  $data .= $_SERVER['REQUEST_TIME'];
  $data .= $_SERVER['HTTP_USER_AGENT'];
  $data .= $_SERVER['LOCAL_ADDR'];
  $data .= $_SERVER['LOCAL_PORT'];
  $data .= $_SERVER['REMOTE_ADDR'];
  $data .= $_SERVER['REMOTE_PORT'];
  $hash = strtoupper(hash('ripemd128',$uid . $guid . md5($data)));
  $guid = '{' . 
      substr($hash,8) .
      '-' .
      substr($hash,4) .
      '-' .
      substr($hash,12) .
      '}';
  return $guid;
 }

PHP教程以上就是PHP生成唯一id的三种方案,希望对大家的学习有所赞助.

小编培训学院每天发布《PHP实战:3种PHP生成唯一id的方法》等实战技能,PHP、MysqL、LINUX、APP、JS,CSS全面培养人才。

3种php生成唯一id的方法_PHP

3种php生成唯一id的方法_PHP

小编在网上查了许多关于php生成唯一id方法的文章,发现有很多的方法,特整理本文与大家分享php生成唯一id的解决方法,希望大家喜欢。

1、md5(time() . mt_rand(1,1000000));

  这种方法有一定的概率会出现重复

2、php内置函数uniqid()

  uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.

立即学习“PHP免费学习笔记(深入)”;

  w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数"。

下面方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872

function uuid() {
  if (function_exists ( ''com_create_guid'' )) {
    return com_create_guid ();
  } else {
    mt_srand ( ( double ) microtime () * 10000 ); //optional for php 4.2.0 and up.随便数播种,4.2.0以后不需要了。
    $charid = strtoupper ( md5 ( uniqid ( rand (), true ) ) ); //根据当前时间(微秒计)生成唯一id.
    $hyphen = chr ( 45 ); // "-"
    $uuid = '''' . //chr(123)// "{"
substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 );
    //.chr(125);// "}"
    return $uuid;
  }
}
登录后复制

com_create_guid()是php自带的生成唯一id方法,php5之后貌似已经没有了。
3、官方uniqid()参考手册有用户提供的方法,结果类似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}

public function create_guid($namespace = '''') {  
  static $guid = '''';
  $uid = uniqid("", true);
  $data = $namespace;
  $data .= $_SERVER[''REQUEST_TIME''];
  $data .= $_SERVER[''HTTP_USER_AGENT''];
  $data .= $_SERVER[''LOCAL_ADDR''];
  $data .= $_SERVER[''LOCAL_PORT''];
  $data .= $_SERVER[''REMOTE_ADDR''];
  $data .= $_SERVER[''REMOTE_PORT''];
  $hash = strtoupper(hash(''ripemd128'', $uid . $guid . md5($data)));
  $guid = ''{'' . 
      substr($hash, 0, 8) .
      ''-'' .
      substr($hash, 8, 4) .
      ''-'' .
      substr($hash, 12, 4) .
      ''-'' .
      substr($hash, 16, 4) .
      ''-'' .
      substr($hash, 20, 12) .
      ''}'';
  return $guid;
 }
登录后复制

以上就是php生成唯一id的三种方案,希望对大家的学习有所帮助。

php – Laravel – 生成唯一的订单号

php – Laravel – 生成唯一的订单号

我正在尝试在用户到达create方法时生成唯一的订单号.订单号在种子中生成如下,并且需要看起来像这样

种子

foreach(range(1,25) as $index)
    {
        DB::table('orders')->insert([

            'user_id' => rand(1,25),
            'order_nr' => '#' . sprintf("%08d", $index),
            'price_sum' => $faker->randomNumber($nbDigits = 4, $strict = false) . '.' . $faker->randomNumber($nbDigits = 2, $strict = false),
            'status' => $faker->randomElement(['paid', 'pending', 'Failed']),
            'created_at' => Carbon::Now(),
            'updated_at' => Carbon::Now(),

        ]);
    }

订单号看起来像#00000001或#00000002.现在,当用户到达我的控制器中的create方法时,需要创建此序列中的新唯一订单号.我怎样才能做到这一点?控制器目前看起来像这样:

 public function create()
{
    $order = new Order;

    $order->user_id = Auth()->id();
    $order->order_nr = 


    dd($order);


    return view('steps.order');
}

它需要检查最新的订单号,并在该订单号上创建一个1.比如说有25个订单,最后一个是#00000025,下一个需要创建的订单需要#00000026.我怎样才能做到这一点?

解决方法:

尝试执行以下操作

$order = new Order;

$order->user_id = Auth()->id();
$latestOrder = App\Order::orderBy('created_at','DESC')->first();
$order->order_nr = '#'.str_pad($latestOrder->id + 1, 8, "0", STR_PAD_LEFT);
$order->save();

这里我假设id是自动递增的.有关更多详细信息,请参阅str_pad方法

php – 如何生成唯一的6位数代码

php – 如何生成唯一的6位数代码

我想生成6位数的唯一代码但我希望前3个是字母表,最后3个是数字,如下例所示.

AAA111
ABD156
DFG589
ERF542...

请帮助创建具有以上组合的代码..

下面是我的代码..

public function generaterandomString()  {
        $characters = '1234567890';
        $length = 6;
        $charactersLength = strlen($characters);
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, $charactersLength - 1)];
        }
        return $randomString;
    }

解决方法:

你想要前3个字符作为字母,最后3个字符作为数字?然后你应该彻底处理它们.

function genRandstr(){
  $a = $b = '';

  for($i = 0; $i < 3; $i++){
    $a .= chr(mt_rand(65, 90)); // see the ascii table why 65 to 90.    
    $b .= mt_rand(0, 9);
  }

  return $a . $b;
}

您还可以使用函数参数来添加动态性,对于随机顺序,您可以执行以下操作:

// PHP >= 7 code
function genRandStr(int $length = 6, string $prefix = '', string $suffix = ''){
  for($i = 0; $i < $length; $i++){
    $prefix .= random_int(0,1) ? chr(random_int(65, 90)) : random_int(0, 9);
  }

  return $prefix . $suffix;
}

使用mt_rand() for PHP version< 7,否则建议使用random_int().

您仍然需要检查可能的冲突并将其置于while循环中.

今天关于PHP生成唯一的促销/优惠/折扣码(附源码)php实现商品的折扣效果的讲解已经结束,谢谢您的阅读,如果想了解更多关于3种php生成唯一id的方法、3种php生成唯一id的方法_PHP、php – Laravel – 生成唯一的订单号、php – 如何生成唯一的6位数代码的相关知识,请在本站搜索。

本文标签: