Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2013, 18:11
folvera6
 
Fecha de Ingreso: octubre-2012
Mensajes: 17
Antigüedad: 12 años, 1 mes
Puntos: 0
Mayusculas despues de simbolo o caracter con PHP

Bueno pues despues de solucionar mi problema con la capitalización de textos y la cual puden ver el topic completo en el link que les dejo mas abajo me surge otra duda, mi proovedor me entrega su catalogo a través de XML y muchos articulos tienen el simbolo "•" (•) antes del texto, ejemplo:

•FABRICADO EN DURABLE NYLON (Si correcto todo esta en mayusculas)

Lo que he tratado de hacer es poner la primera letra despues del "•" en mayusculas y agregar un espacio despues del simbolo, ejemplo:

• Fabricado en durable nylon

Busque un poco por internet y di con la siguiente solución:

Código PHP:
$strmain='capitalize';
$result substr($strmain01); //result is c
$result1=str_replace($result,'',$strmain);//now your result1 is apitalize
$result2=ucfirst($result1); //now result2 is Apitalize

$finalresult=$result.$result2 ///now your finalresult is cApitalize 
Pero mi script maneja string como las siguientes:

Código PHP:
$desc1 eregi_replace(".*<ficha_tecnica>","",$part[$i]);
//Primero hacemos todas las letras minusculas, y despues hacemos la primera letra mayuscula
$desc1 ucfirst(strtolower($desc1));
//Ahora corremos la funcion para capitalizar cada letra DESPUES de un punto (.)
$desc1 preg_replace_callback('/[.!?].*?\w/'create_function('$matches''return strtoupper($matches[0]);'),$desc1);
$desc1 eregi_replace("</ficha_tecnica>.*","",$desc1); 
Cuando intento implementar el primer codigo con mi segundo codigo de la siguiente manera me arroja como resultado todos los campos con el "•"

Código PHP:
//Descripcion 1
//Definir cadena
if($desc1[1]=="•") {
    
$desc1 eregi_replace(".*<ficha_tecnica>","",$part[$i]);
    
$result substr($strmain01); //result is c
    
$result1 str_replace($result,'',$desc1);//now your result1 is apitalize
    
$result2 ucfirst($result1); //now result2 is Apitalize
    
$finalresult $result.$result2///now your finalresult is cApitalize
    
$desc1 eregi_replace("</ficha_tecnica>.*","",$desc1);
} else {
    
$desc1 eregi_replace(".*<ficha_tecnica>","",$part[$i]);
    
//Primero hacemos todas las letras minusculas, y despues hacemos la primera letra mayuscula
    
$desc1 ucfirst(strtolower($desc1));
    
//Ahora corremos la funcion para capitalizar cada letra DESPUES de un punto (.)
    
$desc1 preg_replace_callback('/[.!?].*?\w/'create_function('$matches''return strtoupper($matches[0]);'),$desc1);
    
$desc1 eregi_replace("</ficha_tecnica>.*","",$desc1);
    } 
Notese que uso IF y ELSE para distinguir que hacer cuando se encuentra el simbolo "•" y que hacer cuendo no se encuentre.

Agradezco me pudiran orientar.

Link del topic anteriror: http://www.forosdelweb.com/f18/capitalizacion-textos-php-1054375/