You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Estas funciones de PHP permiten comprimir texto para ahorrar la cantidad de caracteres, y también revertir luego para poder visualizarlo de manera normal.
<?php$texto = "Lorem ipsum dolor sit, amet consectetur adipisici...";
//print_r(strlen($texto)) => da 481 caracteres$compress = gzcompress($texto);
//print_r(strlen($compress)); => ahora comprimida va a dar 259 caracteres// la compresión por defecto es 6, pero se puede especificar un valor de 0 a 9 de esta manera// gzcompress('Texto que se quiere comprimir', 9);$original = gzuncompress($compress);
print_r(strlen($original)); // regresa la frase inicial?>
Nota: no debe confundirse este método usado para comprimir cadenas de texto, con el gZip que comprime archivos
Otra función útil es el minificado, esto quita comentarios y espacios blancos, reduciendo el peso/tamaño de archivos para ciertos usos.
La función PHP func_get_args() expone y cuenta la cantidad de argumentos pasados a una función. En este caso tomará los argumentos pasados a saludo()y los expondrá con el print_r.
Por si necesitamos crear un ID único de forma rápida, fácil y a la vez "ordenable", en vez de ir por randomizar una función matemática o hacer un hash rebuscado, esta es una mejor opción en la mayoría de casos de uso.
<?phpechouniqid('id_');
?>
Resultado:
// primera generación6095c350540547
// segunda generación a pocos segundos6095c3529ea207
// tercera generación agregando el prefijo id_
id_6095c3870e7dc2
¿Por qué son similares unos de otros?
Si leemos la documentación PHP vemos la lógica de generación de estos ID únicos, y se basan en el tiempo del servidor, entonces cada milésima de segundo que pasa es diferente.
Admite los parámetros prefix para añadir una frase o dato arbitrario que necesitemos y more_entropy que aumenta la confiabilidad. Aún así, NO debe usarse como aleatorio "de seguridad" ni en reemplazo de hashes seguros, etc (ver documentación).
Lógica de como se genera: first 8 hex chars = Unixtime, last 5 hex chars = microseconds
Caso de uso práctico:
Ponerlo como ID de pedido, en un ecommerce.
Número de consulta en un formulario de contacto.
Confirmación de trámite o turno médico.
Simplemente como complemento o reemplazo de timestamp, donde no sea necesario guardar la fecha, pero si diferentes versiones y reconocer antiguas y más recientes.
Como versiones en cambios de una información o documento, etc.
En definitiva, donde necesitamos un número más o menos aleatorio, que no sea un autoincremental tan sencillo como el de una tabla mysql, pero donde si podamos hacer un rastreo de la antiguedad sabiendo que no son consecutivos pero si incrementales a grandes rasgos, y con cierta aleatoriedad.
podemos luego rastrear primero por "turno", luego por "orl" y finalmente por ID; sino también sólo por ID, en caso de un totem o buscador de turnos, etc.
al mismo tiempo vamos a saber que el 6095c3529ea207 que quizás se dio para otro servicio médico, es posterior, ya que inicia por 6095c35 pero luego el resto finaliza distinto y con tendencia menor.