Foros del Web » Programando para Internet » PHP »

Obtener texto entre etiquetas h3

Estas en el tema de Obtener texto entre etiquetas h3 en el foro de PHP en Foros del Web. Hola a todos, Necesito obtener el texto entre las etiquetas <h3>, lo estoy intentando con expresiones regulares pero no lo logro, alguien me podría echar ...
  #1 (permalink)  
Antiguo 17/05/2012, 18:58
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Obtener texto entre etiquetas h3

Hola a todos,

Necesito obtener el texto entre las etiquetas <h3>, lo estoy intentando con expresiones regulares pero no lo logro, alguien me podría echar una mano.

Este es un ejemplo del texto de donde necesito sacar la información.

<h3>Texto</h3>
<p>Otro texto</p>
<p>Otro texto</p>
<h3>Texto</h3>
<p>Otro texto</p>
<p>Otro texto</p>
<p>Otro texto</p>
<h3>Texto</h3>
<p>Otro texto</p>

Necesitaría un arreglo con el texto entre cada h3.

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #2 (permalink)  
Antiguo 17/05/2012, 19:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Obtener texto entre etiquetas h3

Con qué expresión regular estás buscando el texto? y cuál función utilizas?

Revisa el manual para preg_match_all(), la variable usada en el tercer parámetro será un arreglo (array) con todas las coincidencias.

Si no logras hacer que funcione, recuerda mostrar aquí el código con el que estás intentando, sólo así podemos saber cuál es el error.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 17/05/2012, 20:13
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Obtener texto entre etiquetas h3

Pues termine solucionándolo así, no creo que sea la mejor salida pero por ahora hace lo que necesito.

Código PHP:
Ver original
  1. $patron = '/<h3>(.+?)<\/h3>/s';
  2. preg_match_all($patron, $text, $matches);
  3.  
  4. $content = array();
  5. $start = 0;
  6. foreach($matches[0] as $count => $h3)
  7. {
  8.     $length = strpos($text, $matches[0][$count + 1]) - strpos($text, $matches[0][$count]);
  9.     if(isset($matches[0][$count + 1]))
  10.     {
  11.         $_content = substr($text, $start, $length);
  12.     }
  13.     else
  14.     {
  15.         $_content = substr($text, $start);
  16.     }
  17.     $content[] = str_replace($h3, NULL, $_content);
  18.     $start = strpos($text, $matches[0][$count + 1]);
  19. }

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana

Etiquetas: etiquetas
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:54.