While & if

Iniciado por gabrielbdmr, 29 Enero 2017, 00:15 AM

0 Miembros y 1 Visitante están viendo este tema.

gabrielbdmr

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 (php) [Seleccionar]
$dirint = dir($directory);


while (($archivo = $dirint->read())!== false)
{

if (preg_match("/(\.jpg)$/i",$archivo)){

 
  $ext = pathinfo($archivo, PATHINFO_EXTENSION);
$archivo_basename = basename($archivo, ".".$ext);


echo $nuevo_nombre." VS ".$archivo_basename.">";
if($archivo_basename==$nuevo_nombre) {

echo "IGUAL<br>";
$rename==FALSE;

}

else {

echo "DESIGUAL<br>";
$rename==TRUE;
}

 
}

}
$dirint->close();



if($rename!==TRUE) {

//renombrar archivo
rename($directory.$filename, $directory.$nuevo_nombre.".jpg");
 
//renombrar thumbnail
rename($directory."thumbnail/".$filename, $directory."thumbnail/".$nuevo_nombre.".jpg");

echo '
<p>Se renombró el archivo con éxito.</p>
<p>El archivo "'.$filename.'" ahora se llama: "'.$nuevo_nombre.'.jpg"</p>
<p class="t_centrado t_rojo">Cierre la ventana y actualice la página.</p>
';
 }  
 else {
 echo '
  <p class="t_centrado t_rojo">Existe un archivo con el nombre:'.$nuevo_nombre.'</p>
<p>Intente nuevamente con otro nombre.</p>
<p><a class="btn btn-primary btn-sm" href="renombrar_imagen.php?id='.$id.'&dir='.$dir.'&filename='.$filename.'">Renombrar</a></p>
';
 }

danny920825

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.
"Los que reniegan de Dios es por desesperación de no encontrarlo".
   Miguel de Unamuno