Después de investigar con especialistas en la materia, programadores de varias áreas y profesores dimos con la solución al dilema y la dejamos plasmada en esta publicación.
Solución:
$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$res = "";
for ($i = 0; $i < 10; $i++)
$res .= $chars[mt_rand(0, strlen($chars)-1)];
Puede optimizar esto preasignando el $res
string y almacenar en caché el resultado de strlen($chars)-1
. Esto se deja como ejercicio para el lector, ya que probablemente no estará generando miles de cupones por segundo.
Prueba esto:
substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10)
Puede usar el archivo de clase PHP del generador de código de cupón para generar N número de cupones y es personalizable, con varias opciones para agregar su propia máscara con su propio prefix y sufijo. Generador de código de cupón PHP simple
Ejemplo:
coupon::generate(8); // J5BST6NQ
Te mostramos comentarios y calificaciones
Si haces scroll puedes encontrar las explicaciones de otros usuarios, tú asimismo tienes la opción de mostrar el tuyo si te apetece.