Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como verificar contenido de un iframe

Estas en el tema de Como verificar contenido de un iframe en el foro de PHP en Foros del Web. Hola a todos Alguien me puede ayudar con un código para verificar un iframe en php. Tengo algunas páginas con videos en iframes y en ...
  #1 (permalink)  
Antiguo 13/08/2014, 10:13
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 6 meses
Puntos: 0
Como verificar contenido de un iframe

Hola a todos
Alguien me puede ayudar con un código para verificar un iframe en php.

Tengo algunas páginas con videos en iframes y en ocasiones el iframe no muestra el video porque ha sido removido del servidor y me muestra algo así:

This video has been deleted. We apologize for the inconvenience.

La pregunta es como verificar el iframe y si contiene ese texto darle una acción, o sea reportarmelo.
  #2 (permalink)  
Antiguo 13/08/2014, 10:19
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Como verificar contenido de un iframe

cuando abris el iframe, fijate en el firebug que seguramente llama de aguna manera llama al contenido del iframe
y te pueda dar una pista
  #3 (permalink)  
Antiguo 13/08/2014, 10:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Como verificar contenido de un iframe

Los <iframe> no los puedes verificar con PHP, ese es un concepto errado, lo que debes verificar es el destino de la URL que indicas para el <iframe>, sólo eso.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 13/08/2014, 10:46
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Como verificar contenido de un iframe

claro, no estaba seguro de si se podia inspeccionar directamente el iframe,
igual eso no resuelve el problema, ya que solo tiene la url de iframe y no sabe lo que hay dentro
  #5 (permalink)  
Antiguo 13/08/2014, 15:50
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Como verificar contenido de un iframe

Hola gracias por responder. Aquí me han pasado un código que me funciona pero no completamente.

Código PHP:
$document = new DOMDocument();
    
$document->loadHTML(file_get_contents("{$url}"));
    
$lst $document->getElementsByTagName('iframe');

    for (
$i=0$i<$lst->length$i++) {
        
$iframe $lst->item($i);
        
     
$videopag file_get_contents($iframe->attributes->getNamedItem('src')->value'<br />');
     
$document->loadHTML($videopag);
    
    
$scripts $document->getElementsByTagName('script');
    }
    foreach(
$scripts as $script) {

if(
preg_match_all("/%31%32%33%34%35%36%37%38%39%30%30%39%38%37%36%35%34%33%32%31%2e%6d%70%34/"$script->nodeValue$count) == 2){

        
mysql_query("UPDATE videos SET report = '1' WHERE id='{$id}'");
}
    } 
El problema que tiene es que verifica solo el primer iframe que hay en la página, los restantes no, a pesar que la parte de i++ se usa para eso creo. Además solo funciona con videos de servidores como videomega.
En el código de los iframes de videomega si el iframe no funciona aparece el código %31%32%... doble, si funciona aparece una sola vez.

En played.to me aparece el texto que indiqué.

Por esto creo que si se puede con php, incluso algunos lo usan.

Lo del firebug no se ni que es.

Necesito mejorar este código, ¿alguién conocedor me podría ayudar?
  #6 (permalink)  
Antiguo 13/08/2014, 18:38
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Como verificar contenido de un iframe

empeza por instalarte el firebug
  #7 (permalink)  
Antiguo 14/08/2014, 20:35
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 21 años
Puntos: 6
Respuesta: Como verificar contenido de un iframe

Cita:
Iniciado por andy82 Ver Mensaje
Hola a todos
Alguien me puede ayudar con un código para verificar un iframe en php.

Tengo algunas páginas con videos en iframes y en ocasiones el iframe no muestra el video porque ha sido removido del servidor y me muestra algo así:

This video has been deleted. We apologize for the inconvenience.

La pregunta es como verificar el iframe y si contiene ese texto darle una acción, o sea reportarmelo.
Si tienes la URL del IFRAME, trae el contenido con file_get_contents()

http://php.net/manual/es/function.file-get-contents.php

y analiza con funciones de manejo de cadenas: str_pos, si el mensaje "This video has been deleted." aparece en el contenido que te has traido

http://php.net/manual/en/function.strpos.php

Espero te sirva,
Saludos
  #8 (permalink)  
Antiguo 18/08/2014, 11:36
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Como verificar contenido de un iframe

Ok gracias Luis Vasques por tu ayuda, ya lo pude solucionar, el problema que veo es que la página tarda demasiado en cargar, al parecer primero tiene que verificar todos los iframes y luego mostrar el contenido, no sé como puedo aligerarla para que cargue más rápido.
  #9 (permalink)  
Antiguo 18/08/2014, 15:30
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 21 años
Puntos: 6
Respuesta: Como verificar contenido de un iframe

Cita:
Iniciado por andy82 Ver Mensaje
Ok gracias Luis Vasques por tu ayuda, ya lo pude solucionar, el problema que veo es que la página tarda demasiado en cargar, al parecer primero tiene que verificar todos los iframes y luego mostrar el contenido, no sé como puedo aligerarla para que cargue más rápido.
Probablemente esto tenga que ver con el servidor que aloja el destino de los IFRAME. Toma en cuenta que las peticiones externas hacen lenta la descarga de una página. Si estás haciendo lo que te dije (traer la página con file_get_contents para verificar y luego traerla para mostrarla), estás duplicando las peticiones externas.

Particularmente uso los IFRAMe como último recurso, pues pones en manos de otros la estabilidad de tu web.

Saludos

Etiquetas: iframe, roto, verificar
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 05:04.