Intereting Posts
Попробуйте и закройте соединение с базой данных pdo Я продолжаю получать сообщение об ошибке на нашем сайте. Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 задано в … Как отобразить выделение нескольких выпадающих из массива в php? Как создать идентификаторы разметки для динамических div? команда curl не может получать содержимое из api.github, но сеть в порядке получить номер перед «подчеркиванием» с помощью php Ошибка при загрузке файла с завихрением в приложение heroku php Преобразование даты, созданной jquery datepicker, в стандартный формат даты mysql Emoji для кодирования JSON, сообщение на веб-сервер Создание excel из базы данных и отправка в виде вложения электронной почты Сложный запрос выбора для простой записи ввода / вывода как конвертировать из Unicode в UTF-8 в PHP? Как получить текст в массиве между всеми тегами <span> из HTML? Могу ли я использовать URL-адрес в качестве источника для imagecreatefromjpeg () без включения оберток fopen? Как предотвратить показ символа символа вопроса, даже используя mb_substr и utf-8

PHP-код для создания приличных кодов купонов (сочетание букв и цифр)

Для сайта электронной коммерции я хочу создать случайный код купона, который выглядит лучше, чем случайно генерируемое значение. Он должен быть читаемым кодом купона, все в верхнем регистре без специальных символов, только буквы (AZ) и цифры (0-9).

Поскольку люди могут читать это / печатать его в другом месте, мы должны сделать это простым для обмена значением, а возможно, длиной 8-10 символов.

Что-то вроде,

AHS3DJ6BW B83JS1HSK 

(Я набрал это, так что на самом деле это не случайно)

 $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $res = ""; for ($i = 0; $i < 10; $i++) { $res .= $chars[mt_rand(0, strlen($chars)-1)]; } 

Вы можете оптимизировать это путем preallocating строки $res и кэширования результата strlen($chars)-1 . Это остается как упражнение для читателя, поскольку, вероятно, вы не будете генерировать тысячи купонов в секунду.

Попробуй это:

 substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10) 

Вы можете использовать генератор кода купона PHP-файла, чтобы генерировать N количество купонов и его настраиваемый, с различными вариантами добавления собственной маски с собственным префиксом и суффикс. Простой генератор кода купона PHP

Пример: coupon::generate(8); // J5BST6NQ coupon::generate(8); // J5BST6NQ

Почему бы не сохранить его простым?

 <?php echo strtoupper(uniqid()); ?> 

Всегда возвращает 13-символьный длинный случайный код в верхнем регистре.

Если для них нет требований безопасности, то вам действительно не нужны случайные коды. Я бы просто использовал инкрементные идентификаторы, такие как те, которые генерируются любой используемой СУБД. При желании, если у вас есть разные типы купонов, вы можете прикрепить коды к чему-то, например:

 CX00019 QZ0001C CX0001A QZ0001D CX0001B QZ0001E 

Альтернативно, вы можете даже использовать словарные слова в купоне, так как такие коды купонов легче запоминать и быстрее для пользователей вводить. Такие компании, как Dreamhost, используют их для своих промо-кодов, например:

 Promo60 NoSetupFee YELLOWGORILLA82 

Некоторые из них, очевидно, созданы человеком (для чего вы, возможно, захотите иметь возможность), но они также могут быть сгенерированы с использованием списка словарей. Но даже если они представляют собой беспорядочные фразы, генерируемые случайным образом, тот факт, что символы следуют логическому шаблону, по-прежнему делает его более удобным для пользователя, чем что-то вроде R7QZ8A92F1 . Поэтому я настоятельно рекомендую использовать коды купонов последнего типа только на том основании, что они «выглядят круто». Ваши клиенты будут благодарны вам.

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

Ну вот.

 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 } 
 function generateCouponCode($length = 8) { $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $ret = ''; for($i = 0; $i < $length; ++$i) { $random = str_shuffle($chars); $ret .= $random[0]; } return $ret; } 

вы можете найти много функций в руководстве php rand
http://php.net/manual/en/function.rand.php

мне нравится этот

  <?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; ?> 
 $length = 9; $code = (strtoupper(substr(md5(time()), 0, $length))); 
 $size = 12; $string = strtoupper(substr(md5(time().rand(10000,99999)), 0, $size));