Foros del Web » Programando para Internet » PHP »

Reemplazar un texto específico por "Paso1:"

Estas en el tema de Reemplazar un texto específico por "Paso1:" en el foro de PHP en Foros del Web. Hola que tal amigos... tengo una duda... yo escribo un artículo mio mediante un textarea... tengo una web de tutoriales y para no estar colocando ...
  #1 (permalink)  
Antiguo 17/01/2013, 14:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 1 mes
Puntos: 4
Pregunta Reemplazar un texto específico por "Paso1:"

Hola que tal amigos... tengo una duda... yo escribo un artículo mio mediante un textarea... tengo una web de tutoriales y para no estar colocando Paso 1:, Paso 2, etc, etc a cada párrafo, lo coloco como este ejemplo

[paso]Este es el primer paso del tutorial.

[paso]Otro texto

[paso]Otro texto

Quisiera saber cómo puedo hacer para reemplazar [paso] por Paso 1, 2, 3, etc... he intentado con str_replace() pero no me sale... me pueden ayudar?... gracias
  #2 (permalink)  
Antiguo 17/01/2013, 14:33
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 2 meses
Puntos: 19
Respuesta: Reemplazar un texto específico por "Paso1:"

no vas a poder utilizar str_replace() si todos los textos a reemplazar son iguales.
Pudrias utilizar el tag <li></li>

Ejemplo: http://www.w3schools.com/tags/tryit....html_list_test

Espero haber ayudado.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 17/01/2013, 14:40
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Reemplazar un texto específico por "Paso1:"

Usa preg_replace_callback en vez de str_replace.
  #4 (permalink)  
Antiguo 17/01/2013, 16:50
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Reemplazar un texto específico por "Paso1:"

Cita:
Iniciado por ArkangelGammar Ver Mensaje
no vas a poder utilizar str_replace() si todos los textos a reemplazar son iguales.
Pudrias utilizar el tag <li></li>

Ejemplo: http://www.w3schools.com/tags/tryit....html_list_test

Espero haber ayudado.

Saludos
Podría ser... pero me olvidé mencionar que también tengo varios "[imagen]" dentro del artículo... ese "[imagen]" lo tengo que cambiar por:

"/ejemplo/1.jpg"
"/ejemplo/2.jpg"
"/ejemplo/3.jpg"

así... cada vez que aparece.. no se va a poder con la etiqueta <li></li>
  #5 (permalink)  
Antiguo 17/01/2013, 16:51
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Reemplazar un texto específico por "Paso1:"

Cita:
Iniciado por dashtrash Ver Mensaje
Usa preg_replace_callback en vez de str_replace.
No lo entendí bien en php.net... podrías ponerme un ejemplo por favor?
  #6 (permalink)  
Antiguo 17/01/2013, 17:06
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Reemplazar un texto específico por "Paso1:"

Este código usa closures, disponibles sólo a partir de 5.3
En caso de que tengas una versión anterior, la funcion callback debes reemplazarla.

Código PHP:
Ver original
  1. $cad="[paso] a [paso] b [paso] c";
  2. $counter=1;
  3.  
  4. echo preg_replace_callback('~\[paso\]~', function ($match) use (&$counter) {
  5.     return "[Paso ".($counter++)."]";
  6. }, $cad);
  #7 (permalink)  
Antiguo 17/01/2013, 17:13
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Reemplazar un texto específico por "Paso1:"

Hasta con explode se puede hacer eso, usa tu imaginación.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 17/01/2013, 20:04
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Reemplazar un texto específico por "Paso1:"

Cita:
Iniciado por andresdzphp Ver Mensaje
Hasta con explode se puede hacer eso, usa tu imaginación.
Hola... creo que lo puedo hacer así...

Código PHP:
$contenido "[paso]Texto1 [paso]Texto2";
$n 0;
foreach(
explode("[paso]"$contenido) as $value) {
       echo 
'Paso '.$n++.": $value";

Pero me sale

Paso 1: (nada)
Paso 2: Texto1
Paso 3: Texto2

Hago algo mal?
  #9 (permalink)  
Antiguo 17/01/2013, 20:10
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Reemplazar un texto específico por "Paso1:"

valor vacío? usa la función array_filter en el explode para sacarlo y $n debería empezar en 1 o cambiar los signos ++ al lado izquierdo: ++$n (a menos que quieras que empiece en cero).

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: reemplazar
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:59.