Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/08/2011, 10:48
diegomel
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: Primera Mayuscula en toda la cadena salvo algunas como?

Bueno al final arme una funcion estatica de una clase y se las dejo para ver primero si alguien puede mejorarla o para que alguien cambiando cosas les sirva.

Código PHP:
public static function ManejoTexto($str){
        
$array explode(' ',$str);
            
// palabras que permanecen en minusculas (agregar si se necesitan mas en este array)//
            
$am = array('DE','Y');
            
// palabras que permanecen en mayusculas (agregar si se necesitan mas en este array)//
            
$aM = array('ZT','S.A.');
            
// Cadena para (USA) en caballos en mayuscula//
            
$cadena '/^\([a-zA-Z]{3,3}\)/';
        
// Comprobacion palabra por palabra de todo el texto //    
        
for ($i=0;$i<count($array);$i++)
        {
            if (
in_array($array[$i],$am)) // dejo todo en minuscula //
                
$a mb_strtolower($array[$i]);
            
// si esta en el array o en la cadena //
            
elseif (in_array($array[$i],$aM) || preg_match_all($cadena,$array[$i],$partes)) // dejo todo en mayuscula //
                
$a strtoupper($array[$i]);
            
// sino armo mayuscula y minuscula la palabra //
            
else
                
$a ucwords(mb_strtolower($array[$i])); // dejo mayuscula primera y minuscula resto //
            // Array Final //
            
$arrayF[] = $a;
        }
        
// Agrupacion de todas las palabras separando por espacio //    
        
$salida implode(' ',$arrayF);
    return 
$salida;
    } 

Saludos y gracias.