Foros del Web » Programando para Internet » PHP »

Como sacar informacion de una table en php

Estas en el tema de Como sacar informacion de una table en php en el foro de PHP en Foros del Web. Hola a todos. Estoy empezando a buscar informacion acerca de como sacar contenido html desde php; para ello encontre un framework que tiene buenas recomendaciones, ...
  #1 (permalink)  
Antiguo 03/07/2011, 15:21
Fsg
 
Fecha de Ingreso: junio-2009
Mensajes: 155
Antigüedad: 14 años, 10 meses
Puntos: 5
Pregunta Como sacar informacion de una table en php

Hola a todos.
Estoy empezando a buscar informacion acerca de como sacar contenido html desde php; para ello encontre un framework que tiene buenas recomendaciones, y hasta el momento me ha parecido muy bueno, se llama Simple Html Dom.

Para la extraccion de divs de una pagina se me hace sencillo, pero el problema que me encuentro, es ¿como sacar solamente la informacion de una tabla?
Suponiendo que tengo este codigo dentro del html de el otro sitio:
Código:
<div class="bwt-top">

											<table>
												<tr>
													<td rowspan="2" class="b-now">														<div>
									<h3>Ahora</h3>

															<div class="icon">

																															        	



																<img src="/icons/wsymbol_0002_sunny_intervals.png" alt="Condiciones climaticas actuales en Pánuco. Partly Cloudy " title="Condiciones climaticas actuales en Pánuco. Nublado localmente"/>

															</div>

															<dl>

																<dt>86° F</dt>

															        																<dd>Parece&nbsp;como:&nbsp;84°&nbsp;F</dd>

																<dd>Viento:&nbsp;<img src="/icons/E.png" alt="E" title="E" align=absmiddle> 17 <noindex><a style="font-size:9px" class="vClass" href="#" onclick="location='/weather/Mexico/na/22.05/-98.166667/Pánuco.html?speed=k#'" rel="nofollow">mph</a></noindex></dd>

																<dd>Humedad:&nbsp;70%</dd>

															</dl>



														</div>

														

													</td>

													<td class="b-day">

													        														<div class="b-item">



															<h3 style="font-size:17px;">Dia</h3>

															<div class="icon">

																															<img src="/img.php?file=wsymbol_0009_light_rain_showers.png&maxx=46&maxy=46" alt="El Tiempo en Pánuco para el Domingo. Lluvia moderada" title="El Tiempo en Pánuco para el Domingo. Lluvia moderada" width="46" height="46"/>
															</div><br>
															<dl>
																<dt>82° F</dt>													<dd>Viento:&nbsp;<img src="/icons/ENE.png" alt="ENE" title="ENE" align=absmiddle> 8 <noindex><a style="font-size:9px" class="vClass" href="#" onclick="location='/weather/Mexico/na/22.05/-98.166667/Pánuco.html?speed=k#'" rel="nofollow">mph</a></noindex></dd>

																<dd>Humedad:&nbsp;74%</dd>

															</dl>
														</div>																										</td>
												</tr>
												<tr>
													<td class="b-night"> 								                														<div class="b-item">

															<h3 style="font-size:17px;">Noche</h3>
															<div class="icon">																					<img src="/img.php?file=wsymbol_0003_white_cloud.png&maxx=46&maxy=46" alt="El Tiempo en Pánuco para el Domingo. Nublado" title="El Tiempo en Pánuco para el Domingo. Nublado" width="46" height="46"/>
															</div>
															<dl>																<dt>72° F</dt>																<dd>Viento:&nbsp;<img src="/icons/ENE.png" alt="ENE" title="ENE" align=absmiddle> 3 <noindex><a style="font-size:9px" class="vClass" href="#" onclick="location='/weather/Mexico/na/22.05/-98.166667/Pánuco.html?speed=k#'" rel="nofollow">mph</a></noindex></dd>

																<dd>Humedad:&nbsp;83%</dd>

															</dl>
														</div>																										</td>
												</tr>
											</table>
										</div>
Hasta el momento puedo sacar completamente todo el contenido de la div que puse anteriormente en HTML,utilizando el nombre de la clase, llamada bwt-top e imprimirlo con el siguiente codigo utilizando simple html dom:
Cita:
<?php
$eltiempohoy=file_get_html('http://www.misitio');
foreach($eltiempohoy->find('div[class=bwt-top]') as $element2) {
echo $element2;

}


?>
Pero lo que quiero sacar, es solo la tabla, con la clase b-now.
¿Como puedo sacar solamente ese campo , ya sea utilizando simple html dom, o php normal?
  #2 (permalink)  
Antiguo 03/07/2011, 15:27
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Como sacar informacion de una table en php

¿Un framework para eso?
Pero si te basta una línea para obtener el html usando dos funciones.

Código PHP:
echo htmlentities(file_get_contents('http://php.net/manual/es/function.file-get-contents.php')); 
y para la búsqueda usa preg_match(), una expresión regular para obtener el contenido entre los tags de <table> y </table> y listo.

Vamos que lo puedes hacer en 2 líneas y sin framework.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 03/07/2011, 16:03
Fsg
 
Fecha de Ingreso: junio-2009
Mensajes: 155
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Como sacar informacion de una table en php

Corrigeme, ya que no entiendo muy bien el por que los caracteres en preg_match:


Cita:
$paginacompleta=file_get_contents('http://www.mipagina.com');
preg_match("/\b<td rowspan="2" class="b-now"\b/i", $paginacompleta,$ocurrencia)
Pero como le hago para darle un principio y fin? para que inicio desde <td rowspan="2" class="b-now" hasta su limitante, que es </td> ?

Etiquetas: informacion, table
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 11:55.