Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/09/2016, 14:30
xerifandtomas
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 15 años, 11 meses
Puntos: 123
Respuesta: sustituir espacios vacios en url

Hace algún tiempo en este hilo se posteo una función similar a la del compañero petit89 pero un poco más completa.

Te la pongo aquí, para solo modificando el último str_replace modificado para que en lugar de espacios lo reemplazo por guiones medios.

Código PHP:
/**
* Extraido de http://ecapy.com/reemplazar-la-n-acentos-espacios-y-caracteres-especiales-con-php-actualizada/
* Reemplaza todos los acentos por sus equivalentes sin ellos
*
* @param $string
*  string la cadena a sanear
*
* @return $string
*  string saneada
*/
function eliminar_simbolos($string){
 
    
$string = trim($string);
 
    
$string = str_replace(
        array(
'á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'),
        array(
'a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'),
        
$string
    
);
 
    
$string = str_replace(
        array(
'é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'),
        array(
'e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'),
        
$string
    
);
 
    
$string = str_replace(
        array(
'í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'),
        array(
'i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'),
        
$string
    
);
 
    
$string = str_replace(
        array(
'ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'),
        array(
'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'),
        
$string
    
);
 
    
$string = str_replace(
        array(
'ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'),
        array(
'u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'),
        
$string
    
);
 
    
$string = str_replace(
        array(
'ñ', 'Ñ', 'ç', 'Ç'),
        array(
'n', 'N', 'c', 'C',),
        
$string
    
);
 
    
$string = str_replace(
        array(
"\\", "¨", "º", "-", "~",
             
"#", "@", "|", "!", "\"",
             
"·", "$", "%", "&", "/",
             
"(", ")", "?", "'", "¡",
             
"¿", "[", "^", "<code>", "]",
             
"+", "}", "{", "¨", "´",
             
">", "< ", ";", ",", ":",
             
".", " "),
        
'-',
        
$string
    
);
return 
$string;
} 
 
//Ejemplo 
$micadena = "ésta cadeña  tiene . Símbolõs";
 
$micadena = eliminar_simbolos($micadena);
 
echo 
$micadena; 
__________________
Unset($vida['malRollo']);