Foros del Web » Programando para Internet » PHP »

Remplazar caracter por texto

Estas en el tema de Remplazar caracter por texto en el foro de PHP en Foros del Web. Hola Pues ya intente con strtr(), tambien con str_replace, pero no se deja, quiero sustituir este caracter ª por <td>, y el º por </td> ...
  #1 (permalink)  
Antiguo 23/03/2011, 18:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 9 meses
Puntos: 10
Remplazar caracter por texto

Hola

Pues ya intente con strtr(), tambien con str_replace, pero no se deja, quiero sustituir este caracter ª por <td>, y el º por </td> , tambien ¬ por </tr><tr>

Como le puedo hacer?
  #2 (permalink)  
Antiguo 23/03/2011, 19:00
Avatar de mashter  
Fecha de Ingreso: mayo-2008
Mensajes: 116
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Remplazar caracter por texto

posiblemente sea por la codificacion en la que se encuentra el archivo y/o caracter

prueba con:
http://es.php.net/manual/en/function...eg-replace.php
__________________
- - - - - - - - -
  #3 (permalink)  
Antiguo 23/03/2011, 21:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 9 meses
Puntos: 10
Respuesta: Remplazar caracter por texto

intente usarlo de esta manera, corrigeme si estoy mal

Código PHP:
Ver original
  1. $resultado=mb_ereg_replace("ª","<td>",$errores);
  #4 (permalink)  
Antiguo 23/03/2011, 21:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 9 meses
Puntos: 21
Respuesta: Remplazar caracter por texto

Aquí hay ejemplos claros de cómo funciona:
Ejemplos
  #5 (permalink)  
Antiguo 23/03/2011, 22:10
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 9 meses
Puntos: 10
Respuesta: Remplazar caracter por texto

Cita:
Iniciado por opzina Ver Mensaje
Aquí hay ejemplos claros de cómo funciona:
Ejemplos
Ya lo habia intentado asi

Código PHP:
$algo=str_replace("ª","<td>",$errores); 
y asi tambien

Código PHP:
$find=array("/ª/","/º/","/¬/");
$replace=array('<td>','</td>','</tr><tr>');
$algo=str_replace($find,$replace,$errores); 
y asi

Código PHP:
$find=array("ª","º","¬");
$replace=array('<td>','</td>','</tr><tr>');
$algo=str_replace($find,$replace,$errores); 
pero siempre me devuelve el string original, que hago?
  #6 (permalink)  
Antiguo 24/03/2011, 00:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Remplazar caracter por texto

Yo no tuve problemas
Código PHP:
Ver original
  1. <?php
  2. $str = 'algo ªvaº aqui¬';
  3. $find=array("ª","º","¬");
  4. $replace=array('<td>','</td>','</tr><tr>');
  5. echo htmlentities(str_replace($find,$replace,$str));
Lo más probable es problema de charset, usa utf8_decode o utf8_encode y verifica si hace el cambio.

Por ejemplo yo cree un archivo y le indique que quería que fuera "utf8 sin bom", luego use de la siguiente forma
Código PHP:
Ver original
  1. <?php
  2. $str = utf8_decode('algo ªvaº aqui¬');
  3. $find=array("ª","º","¬");
  4. $replace=array('<td>','</td>','</tr><tr>');
  5. echo htmlentities(str_replace($find,$replace,$str));
De esa forma no me hizo el cambio. Por ese ejemplo entiendo que tu problema es que estás tratando de cambiar unos caracteres que str_replace no encuentra a causa de que tiene otro tipo de charset.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 25/03/2011, 22:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 9 meses
Puntos: 10
Respuesta: Remplazar caracter por texto

Cita:
Iniciado por abimaelrc Ver Mensaje
Yo no tuve problemas
Código PHP:
Ver original
  1. <?php
  2. $str = 'algo ªvaº aqui¬';
  3. $find=array("ª","º","¬");
  4. $replace=array('<td>','</td>','</tr><tr>');
  5. echo htmlentities(str_replace($find,$replace,$str));
Lo más probable es problema de charset, usa utf8_decode o utf8_encode y verifica si hace el cambio.

Por ejemplo yo cree un archivo y le indique que quería que fuera "utf8 sin bom", luego use de la siguiente forma
Código PHP:
Ver original
  1. <?php
  2. $str = utf8_decode('algo ªvaº aqui¬');
  3. $find=array("ª","º","¬");
  4. $replace=array('<td>','</td>','</tr><tr>');
  5. echo htmlentities(str_replace($find,$replace,$str));
De esa forma no me hizo el cambio. Por ese ejemplo entiendo que tu problema es que estás tratando de cambiar unos caracteres que str_replace no encuentra a causa de que tiene otro tipo de charset.
Asi es, esa era el problema, y se los agradesco, por si alguien requiere la solucion aqui se las dejo, es necesario usar la funcion utf8_encode

Código PHP:
str_replace($find,$replace,utf8_encode($errores)); 
Saludos y gracias
  #8 (permalink)  
Antiguo 26/03/2011, 09:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Remplazar caracter por texto

En tu caso es necesario usar la función utf8_encode, como te indiqué yo no tuve problemas. La razón es que te estaban enviando en formato utf8 y tu lo tienes declarado de alguna otra forma. Si quieres para que veas, convierte el archivo a utf8 o escribe una cabecera indicando que estás mostrando caracteres en formato utf8.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: remplazar, caracteres
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 17:07.