Foros del Web » Programando para Internet » PHP »

Almacenar contenido de cuadro IFrame en base de datos

Estas en el tema de Almacenar contenido de cuadro IFrame en base de datos en el foro de PHP en Foros del Web. Saludos a todos, Por favor su ayuda por aquí. Había preguntado en sección de javascript, pero me han orientado a que mi caso podría ser ...
  #1 (permalink)  
Antiguo 12/04/2010, 22:17
 
Fecha de Ingreso: abril-2010
Mensajes: 10
Antigüedad: 14 años
Puntos: 0
Almacenar contenido de cuadro IFrame en base de datos

Saludos a todos,

Por favor su ayuda por aquí. Había preguntado en sección de javascript, pero me han orientado a que mi caso podría ser llevado a cabo usando PHP y por esto consulto en esta sección. Mi caso es como sigue.
---------------------------------------------------------------------------------------------------
Bueno, no soy programador, pero he aprendido algunas cosas en el camino al tratar de implementar una página web mediante Joomla. Hasta ahora voy relativamente bien. L pregunta comienza al momento que agregué un IFrame que muestra informacion de eventos provenientes de un proveedor externo y que se actualiza cada minuto, aunque no hayan nuevos eventos que mostrar.

Lo que busco es algún script que periódicamente (unas 2 veces al día) copie el contenido que muestra este IFrame y que lo envíe a una base de datos MySQL o a un archivo de texto por ejemplo, y saber dónde colocar el script PHP dentro del servidor. (Básciamente automatizar un Copy, Paste y enviarlo a un archivo dentro del sitio web)

Al ser contenido dinámico lo que muestra el IFrame (en promedio 20 a 100 lineas al mismo tiempo), mi objetivo es colocar un script dentro del servidor en que se aloja la página e ir almacenando la información diaria para tener un base para luego contruir una referencia histórica donde los visitantes puedan tener acceso a los eventos pasados (por ej: del dia anterior, la última semana, el último mes, etc) eligiendolos por fechas o países.


El códigp del IFrame es algo como sigue:
Código:
<iframe id="Eventos" frameborder="0" style="width:676px; height:500px;" src="" allowtransparency="true"></iframe>
<script type="text/javascript" src="http://www.proveedor-del-IFrame.com/js/eventos.js?p=328&s=1&l=3&h=www.proveedor-del-IFrame.com"></script>
Y muestra los datos en una tabla de manera similar a:


Si navego por el sitio y el contenido de la tabla IFrame, queda en forma de texto como sigue:

Código:
Country 1: Place
04-12-2010 20:45 - cloudy - partly cloudy Now
Country 2: Place
04-12-2010 19:00 - cloudy - cloudy Now
.
.
.
Country N: Place
04-12-2010 17:30 - Sunny - Partly cloudy Now


Tal vez alguien me puede orientar cómo hacerlo con algún para esto.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 13/04/2010, 02:30
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8
Respuesta: Almacenar contenido de cuadro IFrame en base de datos

extrae el contenido de la url con la funcion de php file() , el cual lee el contenido de la url ingresada,


una vez leida la url y almacenado el html regresado por la funcion , seperas el contenido que quieras almacenar en la base de datos y listo
es todo

saludos
  #3 (permalink)  
Antiguo 14/04/2010, 19:40
 
Fecha de Ingreso: abril-2010
Mensajes: 10
Antigüedad: 14 años
Puntos: 0
Respuesta: Almacenar contenido de cuadro IFrame en base de datos

Hola,

Gracias duskrow por tu respuesta, siguiendo tus consejos he probado el comando file(), tomando ejemplo
de php.net ([URL]http://es.php.net/manual/en/function.file.php[/URL]) sin éxito aún en lo que busco.



He probado los 2 siguiente scripts:
Script #1

Código PHP:
<?php
// Get a file into an array.  In this example we'll go through HTTP to get
// the HTML source of a URL.
$lines file('http://www.proveedor-del-IFrame.com/js/eventos.js?p=328&s=1&l=3&h=www.proveedor-del-IFrame.com/');

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
    echo 
"Line #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br />\n";
}
?>
Script #2
Código PHP:
<?php

$lines 
file("http://www.proveedor-del-IFrame.com/js/eventos.js?p=328&s=1&l=3&h=www.proveedor-del-IFrame.com/");

foreach(
$lines as $line)
{
    echo(
$line);
}

?>
Pero no obtengo los datos tabulados que muestra el IFrame, solo partes de código como sigue:

Parte de resultado para Script #1
Código:
var proveedor-del-IFrame_src = 'http://' + proveedor-del-IFrame_h +  '/results_now/' + getS(proveedor-del-IFrame_s)
+ '/' + getL(proveedor-del-IFrame_l) + '/get?p=' +  proveedor-del-IFrame_p + '&s=' + proveedor-del-IFrame_s + '&l=' +  
proveedor-del-IFrame_l + '&callback=' +  escape(String(window.location).split('#')[0]);
Line #27 : document.getElementById('results_now').src =  proveedor-del-IFrame_src;
Line #28 : setInterval('results_now_resize()', 550); ....etc.
Parte de resultado para Script #2
Código:
var proveedor-del-IFrame_p = parseInt(getJSvars('results_now.js', 'p', '0')); var proveedor-del-IFrame_s = 
parseInt(getJSvars('results_now.js', 's', '1')); var proveedor-del-IFrame_l = parseInt
(getJSvars('results_now.js', 'l', '3')); var proveedor-del-IFrame_h = getJSvars('results_now.js', 
'h', 'www.proveedor-del-IFrame.com'); function getL(l){ switch(parseInt(l))....etc
No se si es la utilización correcta del comando para poder copiar la tabla de datos.

Replanteando la pregunta y considerando que la tabla se puede ver en la página en la que estoy trabajando sin

necesidad de ir a la fuente del proveedor,

¿Es posible copiar el contenido de la tabla generada por el IFrame dentro mi pagina?


Muchas gracias de antemano por cualquier ayuda o sugerencia.


Saludos,

Etiquetas: almacenar, contenido, cuadro, iframe
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 21:33.