Foros del Web » Programando para Internet » PHP »

Error ucwords y paréntesis

Estas en el tema de Error ucwords y paréntesis en el foro de PHP en Foros del Web. Hola buenas, Veréis tengo este pequeño problema pero no consigo solucionarlo, resulta que al convertir un string con ucwords la letra siguiente al paréntesis no ...
  #1 (permalink)  
Antiguo 25/02/2014, 17:48
 
Fecha de Ingreso: septiembre-2013
Ubicación: Cádiz
Mensajes: 21
Antigüedad: 10 años, 8 meses
Puntos: 2
Error ucwords y paréntesis

Hola buenas,
Veréis tengo este pequeño problema pero no consigo solucionarlo, resulta que al convertir un string con ucwords la letra siguiente al paréntesis no la pone en mayúsculas, he estado buscando y encontré esta solución:

Código PHP:
$titulo "asd (asd asd)";
$titulo preg_replace('/\b[a-z]/e'"strtoupper('$0')"$titulo); 
echo 
$titulo//Devuelve Asd (Asd Asd) 
Todo perfecto pero cuando pongo una ñ me la pone en mayúsculas estando intercalada en una palabra, como podría arreglar esto?

Muchas gracias, un saludo

Última edición por erc94; 25/02/2014 a las 18:12
  #2 (permalink)  
Antiguo 25/02/2014, 20:40
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Error ucwords y paréntesis

Prueba con esto

Código PHP:
<?
$titulo 
= ("asd (asd asd) palbaeñefsd  dfgagsfdg");

$titulopreg_replace_callback('/\b[\wñ]+\b/',function ($m) {return strtoupper($m[0][0]).substr($m[0],1);}, $titulo);
echo 
$titulo//Devuelve Asd (Asd Asd) Palbaeñefsd Dfgagsfdg 
?>
pues esta testeado y no es inseguro como la funcion que encontraste.
  #3 (permalink)  
Antiguo 26/02/2014, 01:45
Avatar de supercoco79  
Fecha de Ingreso: octubre-2012
Ubicación: Islas Canarias
Mensajes: 115
Antigüedad: 11 años, 7 meses
Puntos: 35
Respuesta: Error ucwords y paréntesis

Hola,

Esta solución es más limpia y no tendrás problemas con caracteres UTF-8:

Código PHP:
$title "asd (asd asd) ñsd añsd";
echo 
mb_convert_case($titleMB_CASE_TITLE'UTF-8');
// devuelve Asd (Asd Asd) Ñsd Añsd 
En lo que respecta a funciones de manejo de caracteres, te recomiendo que trabajes siempre que puedas con funciones que permitan trabajar con codificación UTF-8, a menos que tu página esté completamente en inglés.

Con respecto a esto:

Cita:
Iniciado por enlinea777
pues esta testeado y no es inseguro como la funcion que encontraste
enlinea777, ¿por qué dices que la función es insegura?
__________________
Yesterday was the only easy day. Deportes de aventura

Última edición por supercoco79; 26/02/2014 a las 01:56 Razón: añadir un caso más
  #4 (permalink)  
Antiguo 26/02/2014, 10:52
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Error ucwords y paréntesis

por esto
http://cl1.php.net/manual/es/referen....modifiers.php
Mira la seccion: "e (PREG_REPLACE_EVAL)"
  #5 (permalink)  
Antiguo 28/02/2014, 19:16
 
Fecha de Ingreso: septiembre-2013
Ubicación: Cádiz
Mensajes: 21
Antigüedad: 10 años, 8 meses
Puntos: 2
Respuesta: Error ucwords y paréntesis

Gracias a los dos, ya está solucionado.
Un saludo

Etiquetas: Ninguno
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 10:58.