Foros del Web » Programando para Internet » PHP »

Limpiar texto de una variable, para usarlo como nombre de archivo.

Estas en el tema de Limpiar texto de una variable, para usarlo como nombre de archivo. en el foro de PHP en Foros del Web. Hola chicos, tengo la siguiente duda, y no pude encontrar muchas cosas. La idea es que tengo un campo en un formulario el cual el ...
  #1 (permalink)  
Antiguo 19/01/2009, 20:27
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Limpiar texto de una variable, para usarlo como nombre de archivo.

Hola chicos, tengo la siguiente duda, y no pude encontrar muchas cosas.

La idea es que tengo un campo en un formulario el cual el usuario por ejemplo ingresa el nombre de un libro. (puede ingresar cualquier texto).

Luego hay otro campo en el cual el usuario puede subir una imagen del mismo.
Lo que necesito es agarrar el nombre del libro que inserto el usuario, limpiar todo ese texto y utilizarlo como nombre de archivo.

Por ejemplo si el usuario coloca: Mi libro, el nombre quedaria mi_libro. Y si hay caracteres raros los suprima.

Nose si ya hay alguna funcion que lo haga, o algun recurso que ya este publicado y asi no re-inventar la rueda.

Podrian darme una mano?

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 19/01/2009, 20:36
 
Fecha de Ingreso: enero-2009
Ubicación: Mexico
Mensajes: 99
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Limpiar texto de una variable, para usarlo como nombre de archivo.

Yo intentaría algo así:

Código PHP:
$valor str_replace(array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ',' '),array('a','e','i','o','u','n','A','E','I','O','U','N','_'),$valor);
$valor strtolower($valor);

$nombreArchivo '';
for(
$i=0$t=strlen($valor);$i<$t;$i++)
    {
    
$c $valor[$i];
    if((
$c<'a'||$c>'z')&&$c!='_')
        {
        
$nombreArchivo.='-';
        }
    else
        
$nombreArchivo.=$valor[$i];
        }
    } 
Pero ten cuidado porque puede ser que el nombre del archivo ser repita.

Última edición por codecweb98; 19/01/2009 a las 21:44 Razón: correccion de error
  #3 (permalink)  
Antiguo 19/01/2009, 21:07
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Limpiar texto de una variable, para usarlo como nombre de archivo.

Es mas facil con regexp:

Código PHP:
$texto 'Mi libro Háal    no dwadqwon ^*^%^@#$%$!@ daon  aáóúñÑdé';
echo 
trim(strtolower(preg_replace('/([^a-z0-9]+)/i''-'$texto)), "-");
//imprime: mi-libro-h-al-no-dwadqwon-daon-a-d- 
El patron dice, reemplaza todo lo que no sea a-z ni 0-9 por "-". El trim, elimina los "-" que queden al principio y final de la cadena.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:50.