Foros del Web » Programando para Internet » PHP »

Como cambiar caracteres de una cadena?

Estas en el tema de Como cambiar caracteres de una cadena? en el foro de PHP en Foros del Web. Como reemplazar el contenido de una cadena que esta dentro de parametros? ejemplo: "Hola mundo del PHP, como <H>estan</H>todos? Como reemplazar todo lo que esta ...
  #1 (permalink)  
Antiguo 17/05/2012, 10:46
Avatar de spacecowboy  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Como cambiar caracteres de una cadena?

Como reemplazar el contenido de una cadena que esta dentro de parametros?


ejemplo:

"Hola mundo del PHP, como <H>estan</H>todos?

Como reemplazar todo lo que esta dentro de las etiquetas "<H></H>" ??

y se puede contar el numero de veces que se reemplaza? o que aparece las etiquetas??


Gracias a todos de antemano
  #2 (permalink)  
Antiguo 17/05/2012, 11:22
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Como cambiar caracteres de una cadena?

con expresiones regulares, actualmente la funcion que se utiliza es preg_replace() en reemplazo de ereg_replace() que esta deprecated.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 17/05/2012, 13:40
Avatar de spacecowboy  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Como cambiar caracteres de una cadena?

Cita:
Iniciado por linuxzero Ver Mensaje
con expresiones regulares, actualmente la funcion que se utiliza es preg_replace() en reemplazo de ereg_replace() que esta deprecated.
Lo siento amigo, pero no es lo que ando buscando. Necesito más una función que busque un párrafo cuantas veces esta cierta etiqueta html... y cambiar el contenido interno. Con las expresiones regulares no es totalmente lo que necesito.
  #4 (permalink)  
Antiguo 17/05/2012, 13:44
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Como cambiar caracteres de una cadena?

investiga toda la documentacion de preg_* no creo que puedas hacer lo que queres in expresiones regulares..
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 17/05/2012, 14:02
Avatar de spacecowboy  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Como cambiar caracteres de una cadena?

Cita:
Iniciado por linuxzero Ver Mensaje
investiga toda la documentacion de preg_* no creo que puedas hacer lo que queres in expresiones regulares..
vale, agradezco el consejo amigo, pero no es lo que busco.
  #6 (permalink)  
Antiguo 17/05/2012, 15:15
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Como cambiar caracteres de una cadena?

Sin expresiones regulares te complicas bastante, tendrías que buscar cada ocurrencia de cada par de tags y reemplazar el contenido, puedes hacerlo así, lee los comentarios para entender:

Código PHP:
<?php
//Primero escribe el texto
$texto=$input="Hola mundo del <H>PHP</H>, como <H>estan</H> todos?";
//Luego el texto por el que quieras reemplazar
$repla="REEMPLAZADO!";
//Declara una variable que es donde iremos poniendo el texto
$output="";
//Aqui abres un for iniciado en 0 que actuará como contador para que sepas cuantos reemplazor hay
//Luego buscas si existe el tag <h>
//además compruebas que exista un tag de cerrado </h> y que lo que haya entre ellos sea 0 o mayor
//evitando así que hayan errores como tags mal cerrados o mal ubicados
for($f=0;strripos($texto,"<h>")>-and (strripos($texto,"<h>")+3<strripos($texto,"</h>"));$f++){
//guardas solo el final de la cadena donde está la última coincidencia en $output
    
$output=substr($texto,strripos($texto,"<h>"),3).$repla.substr($texto,strripos($texto,"</h>")).$output;
//Luego haces un nuevo texto, esta vez sin el texto reemplazado
    
$texto=substr($texto,0,strripos($texto,"<h>"));
}
// Finalmente agregas el último segmento sobrante
$output=$texto.$output;
//Ya puedes imprimir la cantidad de veces que se reemplazo (cantidad de ciclos del for) y la cadena completa con el texto reemplazado
echo "<p>Se ha reemplazado $f veces.</p>";
echo 
"El nuevo texto es: $output";
?>
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #7 (permalink)  
Antiguo 17/05/2012, 17:07
Avatar de spacecowboy  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Como cambiar caracteres de una cadena?

Perfecto! Muchas Gracias stramin es lo que buscaba!

Etiquetas: 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 12:44.