Foros del Web » Programación para sitios web » 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, 10:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 172
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 originalCopiar
  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 originalCopiar
  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, 11:02
 
Fecha de Ingreso: julio-2010
Mensajes: 376
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!
__________________
publicar anuncios gratis.
Aprender a programar? Visita mi nuevo blog.
  #3 (permalink)  
Antiguo 18/01/2012, 11:06
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.930
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 originalCopiar
  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, 10:52
 
Fecha de Ingreso: febrero-2011
Mensajes: 172
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 originalCopiar
  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, 20:10
 
Fecha de Ingreso: febrero-2011
Mensajes: 172
Respuesta: Enumerar cada vez que aparece un texto específico.

alguna respuesta...
  #6 (permalink)  
Antiguo 03/02/2012, 21:00
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 1.966
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 originalCopiar
  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, 21:22
 
Fecha de Ingreso: febrero-2011
Mensajes: 172
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 originalCopiar
  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, 21:37
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 1.966
Respuesta: Enumerar cada vez que aparece un texto específico.

así:

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

o así:


Código PHP:
Ver originalCopiar
  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 originalCopiar
  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 21:48
  #9 (permalink)  
Antiguo 03/02/2012, 21:59
 
Fecha de Ingreso: febrero-2011
Mensajes: 172
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
¿Nuevo en el foro? Regístrate



La zona horaria es GMT -6. Ahora son las 10:36.
SEO by vBSEO 3.3.2