Suponiendo que la carpeta es accesible y puedes obtener los files via url.
Como lo harias para la funcion que he compartido arriba y cuales serían tus recursos computacionales necesarios para obtener 1 archivo en 1 día.?
| |||
Respuesta: Nombre irrepetible para imágenes Suponiendo que la carpeta es accesible y puedes obtener los files via url. Como lo harias para la funcion que he compartido arriba y cuales serían tus recursos computacionales necesarios para obtener 1 archivo en 1 día.? |
| |||
Respuesta: Nombre irrepetible para imágenes Me ha molado lo de str_shuffle(). Yo las estaba guardando en un array... |
| |||
Respuesta: Nombre irrepetible para imágenes Entiendo bien lo que dices. Se ve horrible. Cita: No que yo sepa.RexExp, es para buscar patrones, no generar texto. Saludos |
| |||
Respuesta: Nombre irrepetible para imágenes No encontré nada... Bueno el tema ya está solucionado, hemos propuesto un montón de ideas aunque el usuario que creó el tema no haya mostrado existencia... Última edición por PHPeros; 07/09/2013 a las 13:03 |
| |||
Respuesta: Nombre irrepetible para imágenes Cita: Me gustaria comentar todo tu post pero no tengo tanto tiempo :)El caso es casi igual: entre más archivos haya con el mismo nombre, más veces se tendrá que comprobar, con el añadido de tener que crear el aleatorio y luego el hash.La única ventaja sería si hay pocos archivos, pongamos por ejemplo un rango de 0 a 100, y ya se han subido 5 archivos.Con mi método se tendría que comprobar 5 veces para que ya no se repitiera el nombre (patito 6).Con tu método, es posible (de hecho muy probable) que a la primera nos diera un nombre diferente. Con mi codigo, la probabilidad de colision (que se salvaria en la siguiente repeticion del bucle) es 1/(26+10)^32 |
| |||
Respuesta: Nombre irrepetible para imágenes Cita: De hecho, el algoritmo md5 se ha abandonado por esto mismo. El sha1 me parece que también lo dejó la NSA hace 10 años. Hay personas que se lo toman como un reto el demostrar que un algoritmo es vulnerable. Cita: Eso es verdad, pero el "más" es muuuy pequeñito :D (sobre todo en las condiciones que te explicaré más abajo)
Iniciado por ocp001a El caso es casi igual: entre más archivos haya con el mismo nombre, más veces se tendrá que comprobar, con el añadido de tener que crear el aleatorio y luego el hash. Hace unas horas escribí desde mi móvil pero parece que no llegó el último mensaje. Era sobre esto: Cita: Ésta es una de las partes donde reside tu error: no debes crearte trabajo innecesario, es decir, si ya sabes que hay 5 patitos, por qué los vuelves a comprobar?
Iniciado por ocp001a La única ventaja sería si hay pocos archivos, pongamos por ejemplo un rango de 0 a 100, y ya se han subido 5 archivos. Con mi método se tendría que comprobar 5 veces para que ya no se repitiera el nombre (patito 6). Con tu método, es posible (de hecho muy probable) que a la primera nos diera un nombre diferente. Cita: Aquí estás planteando mal el problema. Te explico.
Iniciado por ocp001a Pero ahora supongamos para el mismo rango de 0 a 100 nombres, que ya se han ocupado 80. Con mi método, se harán 80 comprobaciones. Con tu método, tanto es posible que nos de un número libre a la primera como es posible que nos de números ocupados muchas veces, ya que sólo tiene el 20 por ciento de posibilidades de acertar a un número libre, con lo que es posible que se hagan más de 80 comprobaciones. Y entre menos números libres queden la cantidad de comprobaciones aumentará. Si haces una simulación a obtener números libres en estas condiciones lo verás. a) Te estás creando complejidad y estás yendo por el peor caso: si puedes hacer 80 comprobaciones, pues las haces todas! :D Y si puedes hacer mil, haces mil, y si... no sigo :D b) Yo no elijo nombres de entre un rango de 100, sino un número aleatorio entre 0 (o menos) y PHP_INT_MAX (6 082 244 480 221 302 255 en 32 bits). De verdad crees que, aún dejándote el SISTEMA DE ARCHIVOS (NTFS permite "sólo" 4 294 967 295 archivos), vas a llegar siquiera a un 0,000000001 %? :D :D (no hablemos de un 80%) Es decir, la posibilidad de colisión puede considerarse ¡NULA! Pero un poco como dice Erick_MD9 (por fanatismo), un poco por evitar cualquier problema... comprobamos que no se repita un nombre. Cita: Si es para unos pocos archivos, no se nota. Pero ya mantener un registro de nombres de archivos... :D eso ya lo hace el sistema de archivos! No es eficiente. Además puede surgir algún desfase realidad - registro de nombres, con el tiempo.
Iniciado por ocp001a Por otro lado, el método que yo propuse es para pocos archivos y sin depender de llevar un registro, si se va a almacenar muchos archivos en la misma carpeta y se sabe que va a haber repetidos, se puede hacer simplemente guardando el último nombre, digamos que llegamos a patito999, el siguiente secuencia será patito1000 y ya está. Supongamos la prima vez que se guarda la imagen patito.jpg Almacenamos sólo el nombre en algún lugar "patito/0" si suben otro patito.jpg, comprobamos que ya existe, por lo tanto aumentamos el índice y lo almacenamos "patito/1"; ________ En serio, no es difícil: generamos un número entre 0 y 6082244480221302255, le concatenas la extensión y ya estaa! :) Ni siquiera hace falta md5 ni sha1 ni nada. Perdonadme la expresión, pero es como mear en medio del océano pacífico, no vas a molestar a nadie. Y si por alguna casualidad de la vida en ese momento hay un naufrago a tu lado, pues te mueves 1000 km y seguro que no te encuentras ya a nadie. Espero que entiendas la comparación. Y por último, si me he equivocado en algo, os ruego que me perdonéis, es muy tarde aquí :D Última edición por Onedy; 07/09/2013 a las 17:24 |
Etiquetas: |