Foros del Web » Programando para Internet » PHP »

Enumerar cada vez que aparece un texto específico.

Estas en el tema de Enumerar cada vez que aparece un texto específico. en el foro de PHP en Foros del Web. Tengo el siguiente registro en un campo llamado "contenido": [s=n] ALGUN TEXTO [s=n] otro texto.. Cuando hago la consulta respectiva, le coloco un str_replace para ...
  #1 (permalink)  
Antiguo 18/01/2012, 11:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 9 meses
Puntos: 4
Enumerar cada vez que aparece un texto específico.

Tengo el siguiente registro en un campo llamado "contenido":

[s=n] ALGUN TEXTO
[s=n] otro texto..


Cuando hago la consulta respectiva, le coloco un str_replace para cambiar [s=n] (que coloco para que se enumere) por un

Código HTML:
Ver original
  1. <div style="display:list-item; list-style-type:decimal"></div>

cosa que cuando se muestra en pantalla lo muestra así.

1. ALGUN TEXTO
2. otro texto..


quisiera saber si puedo colocar un variable y que este aumente conforme existan "[s=n]"

intenté colocarle

Código PHP:
Ver original
  1. $n = 1;
  2. echo str_replace("[s=n]", $n++, $resultado['contenido']);

pero sólo me salió puros "1".
  #2 (permalink)  
Antiguo 18/01/2012, 12:02
 
Fecha de Ingreso: julio-2010
Mensajes: 393
Antigüedad: 14 años, 3 meses
Puntos: 67
Respuesta: Enumerar cada vez que aparece un texto específico.

Y si lo haces con explode?


Código PHP:
    $splitted explode('[s=n]'$resultado['contenido']);
    
$str_result '';
    for(
$i $i count($splitted) ; $i++){
        
$str_result .= ($i ? ($i 1) : '') . ' ' $splitted[$i] ;
    }
    echo 
$str_result
OJO: No he probado ese código, solo es para darte un ejemplo.

Saludos!
__________________
Páginas web de alta calidad y hechas a la medida.
  #3 (permalink)  
Antiguo 18/01/2012, 12:06
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Enumerar cada vez que aparece un texto específico.

Es que para que aumente, tendria que haber un recorrido...
Esto podrias hacerlo partiendo $resultado['contenido'] en cuentos segmentos existan... ya sea por [s=n] o por saltos de linea \n
Es decir, que uses un explode y luego for/foreach/while... y ahi recien su aumentaria $n
Y quedaria algo asi:
Código PHP:
Ver original
  1. foreach(explode('[s=n]', $resultado['contenido'] as $n => $value) echo ++$n.". $value<br />";

Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 03/02/2012, 11:52
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Enumerar cada vez que aparece un texto específico.

Cita:
Iniciado por masterojitos Ver Mensaje
Es que para que aumente, tendria que haber un recorrido...
Esto podrias hacerlo partiendo $resultado['contenido'] en cuentos segmentos existan... ya sea por [s=n] o por saltos de linea \n
Es decir, que uses un explode y luego for/foreach/while... y ahi recien su aumentaria $n
Y quedaria algo asi:
Código PHP:
Ver original
  1. foreach(explode('[s=n]', $resultado['contenido'] as $n => $value) echo ++$n.". $value<br />";

Suerte
ESTE CODIGO SI VA... PERO ME LO MUESTRA ASÍ MÁS O MENOS:


1.
2. PRIMER PARRAFO.
3. SEGUNDO PARRAFO.


el numero 1 queda sólo.... ayuda...
  #5 (permalink)  
Antiguo 03/02/2012, 21:10
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Enumerar cada vez que aparece un texto específico.

alguna respuesta...
  #6 (permalink)  
Antiguo 03/02/2012, 22:00
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Enumerar cada vez que aparece un texto específico.

Deberías usar ul y li html para esa lista, pero si te sirve así se arregla con un condicional:

Código PHP:
Ver original
  1. foreach(explode('[s=n]', $resultado['contenido']) as $n => $value) {
  2.     if ($value != '') echo $n++ . ". $value<br />";
  3. }
__________________
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
  #7 (permalink)  
Antiguo 03/02/2012, 22:22
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Enumerar cada vez que aparece un texto específico.

Cita:
Iniciado por andresdzphp Ver Mensaje
Deberías usar ul y li html para esa lista, pero si te sirve así se arregla con un condicional:

Código PHP:
Ver original
  1. foreach(explode('[s=n]', $resultado['contenido']) as $n => $value) {
  2.     if ($value != '') echo $n++ . ". $value<br />";
  3. }
esta bien pero esta vez cuenta desde el segundo numero... ya no sale 1.

2. primer texto.
3. segundo texto.
  #8 (permalink)  
Antiguo 03/02/2012, 22:37
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Enumerar cada vez que aparece un texto específico.

así:

Código PHP:
Ver original
  1. foreach(explode('[s=n]', $resultado['contenido']) as $n => $value) {
  2.     if ($value != '') echo ++$n . ". $value<br />";
  3. }

o así:


Código PHP:
Ver original
  1. foreach(array_values(array_diff(explode('[s=n]', $resultado['contenido']), array(''))) as $n => $value) {
  2.     echo ++$n . ". $value <br />";
  3. }

Será que no te sirve mejor una lista HTML

Código PHP:
Ver original
  1. echo '<ul style="list-style-type:decimal;">';
  2. foreach(array_diff(explode('[s=n]', $resultado['contenido']), array('')) as $value) {
  3.     echo "<li>$value</li>";
  4. }
  5. echo '</ul>';
__________________
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

Última edición por andresdzphp; 03/02/2012 a las 22:48
  #9 (permalink)  
Antiguo 03/02/2012, 22:59
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Enumerar cada vez que aparece un texto específico.

ok gracias... no sé xq me contaba 1. y no salía nada... era xq cuenta la etiqueta <p> al comienzo...gracias

Etiquetas: enumerar
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 09:11.