Intereting Posts
python и php bcrypt Статические данные сохраняются для каждого динамически генерируемого поля и кнопки отправки Параметры сетки KendoUI для отправки в приложение symfony2 Как удалить элемент из дерева XML, где атрибут – это определенная строка в Simple XML PHP PHP str_replace для цикла for из массива Посылка электронной почты Codeigniter не работает PHP login session не работает на загрузке первой страницы в новом окне без кеша Regex, чтобы получить только символы без пробелов внутри специальных тегов Ошибка mPDF: невозможно найти таблицу xref Когда я перехожу к Localhost и попробую имя пользователя и пароль, который он сообщает мне об ошибке? Проводка на страницу facebook с веб-сайта с использованием завитка Создание глобальной переменной, доступной для каждой функции внутри класса Порт Plesk nginx 80 не работает Максимальный размер объекта JSON? Неопределенный индекс в сообщении PHP

Как сделать «uniqid» только номера?

У меня есть следующий код, который я собрал из разных примеров учебников:

<?php $stamp = date("Ymdhis"); $random_id_length = 6; $rndid = crypt(uniqid(rand(),1)); $rndid = strip_tags(stripslashes($rndid)); $rndid = str_replace(".","",$rndid); $rndid = strrev(str_replace("/","",$rndid)); $rndid = substr($rndid,0,$random_id_length); $orderid = "$stamp-$rndid"; $orderid = str_replace(".", "", "$orderid"); echo($orderid); ?> 

FIDDLE: http://phpfiddle.org/main/code/27d-qfw

Я хотел бы, чтобы это создало число; текущее время, за которым следует 6-значное случайное число.

Например: 20130710045730-954762

Однако на данный момент случайные цифры также включают буквы.

Например: 20130710045730-Z3sVN2

Как я могу редактировать код, чтобы просто включать номера? Любая помощь приветствуется.

uniqid() уже вернет числа. Но в их шестнадцатеричном представлении. В общем, вы можете просто преобразовать их в десятичные числа:

 echo hexdec(uniqid()); 

Значение может быть значимым только в 64-битной системе, так как оно очень велико и выходит за пределы 32-битного целого числа со знаком (например, php). И в этом все дело. uniqid() использует такие большие числа вместе с другими методами, чтобы обеспечить высокий уровень uniqness. Если вы используете только 6 цифр, вы больше не можете этого выдавать. Риск того, что значения столкнутся, будет высоким.

Я бы предложил создать широкомасштабную унифицированность приложения, используя значение auto_increment в базе данных или что-то подобное этому.

Если это случайная строка, используйте что-то вроде этого:

 $stamp = date("Ymdhis"); $random_id_length = 6; $rndid = generateRandomString( $random_id_length ); $orderid = $stamp ."-". $rndid; echo($orderid); function generateRandomString($length = 10) { $characters = '0123456789'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; } // Output example: 20130710055714-462231 

Пример: http://codepad.org/eukiOb6S

Fn изменен с https://stackoverflow.com/a/4356295/1265817

Используйте этот код. Я думаю, что это будет помощь.

Rand (100000,999999)

Введите два числа, номера которых вы хотите

Использовать это:

 str_pad(rand(0,'9'.round(microtime(true))),11, "0", STR_PAD_LEFT);