¿Usar PHP para obtener información de la página src incrustada?

Una especie de pregunta extraña.

Desde el sitio de videos 4shared, obtengo el código de inserción como el siguiente:

<embed src="http://www.4shared.com/embed/436595676/acfa8f75" width="420" height="320" allowfullscreen="true" allowscriptaccess="always"></embed>

Ahora, si accedo a la URL en ese incrustado src, el video se carga y la URL de la página se cambia con información sobre el video.

Me pregunto si hay alguna forma de acceder a esa información usando PHP. Probé file_get_contents pero me da muchos personajes extraños.

Entonces, ¿puedo usar PHP para cargar la URL de inserción y obtener la información presente en la barra de direcciones?

¡Gracias por toda tu ayuda! :)

preguntado el 27 de agosto de 11 a las 17:08

¿Desea obtener el archivo real o la versión de pantalla completa de http://www.4shared.com/embed/436595676/acfa8f75 o el código de inserción como el que tienes? es difícil de seguir. -

los caracteres extraños pueden ser el contenido binario del archivo. -

1 Respuestas

Sí, por ejemplo, con el rizo-biblioteca de php. Éste se encargará del redireccionar-encabezados desde el servidor, lo que da como resultado la URL nueva / real del video.

Aquí hay un código de muestra:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.4shared.com/embed/436595676/acfa8f75");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);

// we want to further handle the content, so return it
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// grab URL and pass it to the browser
$result = curl_exec($ch);

// did we get a good result?
if (!$result)
    die ("error getting url");

// if we got a redirection http-code, split the content in
// lines and search for the Location-header.
$location = null;
if ((int)(curl_getinfo($ch, CURLINFO_HTTP_CODE)/100) == 3) {
    $lines = explode("\n", $result);
    foreach ($lines as $line) {
        list($head, $value) = explode(":", $line, 2);
        if ($head == 'Location') {
            $location = trim($value);
            break;
        }
    }
}
if ($location == null)
    die("no redirect found in header");

// close cURL resource, and free up system resources
curl_close($ch);

// your location is now in here.
var_dump($location);
?>

Respondido 27 ago 11, 22:08

Soy bastante nuevo en php. ¿Podrías darme algún código que lo entienda? - Dranzer

¡Impresionante! Funciona como yo quería. ¡Muchas gracias! :D - Dranzer

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.