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($strmain, 0, 1); //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($strmain, 0, 1); //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/