elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  While & if
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: While & if  (Leído 2,077 veces)
gabrielbdmr

Desconectado Desconectado

Mensajes: 9


Ver Perfil
While & if
« en: 29 Enero 2017, 00:15 am »

Buen día con todos tengo el siguiente código y necesito que se verifique que ninguno de los archivos existentes se llama como el nuevo nombre enviado, funciona bien si mando un nombre diferente a todos, es decir si no hay coincidencias entonces renombra correctamente el archivo, sin embargo si hay UNA coincidencia debería mandar error, pero como en el while se produce $rename==TRUE por que obviamente los demas archivos tienen otro nombre, igual considera como valor final $rename==TRUE, entonces mi pregunta es como obtener $rename==FALSE si existe al menos una coincidencia con el nuevo nombre

Código
  1. $dirint = dir($directory);
  2.  
  3.  
  4. while (($archivo = $dirint->read())!== false)
  5. {
  6.  
  7. if (preg_match("/(\.jpg)$/i",$archivo)){
  8.  
  9.  
  10.   $ext = pathinfo($archivo, PATHINFO_EXTENSION);
  11. $archivo_basename = basename($archivo, ".".$ext);
  12.  
  13.  
  14. echo $nuevo_nombre." VS ".$archivo_basename.">";
  15. if($archivo_basename==$nuevo_nombre) {
  16.  
  17. echo "IGUAL<br>";
  18. $rename==FALSE;
  19.  
  20. }
  21.  
  22. else {
  23.  
  24. echo "DESIGUAL<br>";
  25. $rename==TRUE;
  26. }
  27.  
  28.  
  29. }
  30.  
  31. }
  32. $dirint->close();
  33.  
  34.  
  35.  
  36. if($rename!==TRUE) {
  37.  
  38. //renombrar archivo
  39. rename($directory.$filename, $directory.$nuevo_nombre.".jpg");
  40.  
  41. //renombrar thumbnail
  42. rename($directory."thumbnail/".$filename, $directory."thumbnail/".$nuevo_nombre.".jpg");
  43.  
  44. echo '
  45. <p>Se renombró el archivo con éxito.</p>
  46. <p>El archivo "'.$filename.'" ahora se llama: "'.$nuevo_nombre.'.jpg"</p>
  47. <p class="t_centrado t_rojo">Cierre la ventana y actualice la página.</p>
  48. ';
  49.  }  
  50.  else {
  51.  echo '
  52.   <p class="t_centrado t_rojo">Existe un archivo con el nombre:'.$nuevo_nombre.'</p>
  53. <p>Intente nuevamente con otro nombre.</p>
  54. <p><a class="btn btn-primary btn-sm" href="renombrar_imagen.php?id='.$id.'&dir='.$dir.'&filename='.$filename.'">Renombrar</a></p>
  55. ';
  56.  }


« Última modificación: 29 Enero 2017, 11:00 am por #!drvy » En línea

danny920825

Desconectado Desconectado

Mensajes: 175


Ver Perfil WWW
Re: While & if
« Respuesta #1 en: 30 Enero 2017, 15:51 pm »

Hola, soy nuevo en PHP y aun hay cosas que no domino, pero... puedes hacer un array con todo el contenido de la carpeta? De poder hacerse, pienso que con un foreach podrías revisar archivo por archivo y comprobar individualmente el nombre, la extensión y el renombrado. Ya te podrán explicar mejor otros usuarios más experimentados, yo solo aporto una idea. Perdón si no soy del todo útil.


En línea

"Los que reniegan de Dios es por desesperación de no encontrarlo".
   Miguel de Unamuno
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines