Que tal, lo que busco hacer es que a través de una función PHP leer el código fuente de un sitio externo.
Esto lo hago en mi Win7 con WAMP 2.2
Hasta ahora lo puedo lograr en sitios que NO REQUIEREN TENER ACTIVAS LAS COOKIES.
Con este código: <?php
$mi_url="http://www.yahoo.com";
$fo= fopen("$mi_url","r") or die ("No se ha encontrado la pagina.");
$mi_cadena = null;
while (!feof($fo)) {
$mi_cadena .= fgets($fo, 4096);
}
fclose ($fo);
print("<textarea name='mi_area' cols='100' rows='20'>$mi_cadena</textarea>");
?>
También en sitios QUE NO REQUIERAN TENER ACTIVAS LAS COOKIES Y QUE USEN SSL (https). Para esto tuve que instalar OpenSSL.
Ahora si lo intento en sitios QUE SI REQUIEREN TENER LAS COOKIES ACTIVAS, no lo puedo lograr. Me aparece algo como:
Este sitio requiere las cookies del navegador activadas. Y el codigo fuente que me puede leer es solo el de la pantalla de LOGIN.
He intentado con este código pero no me resulta:
<?php
function source_extract($file, $cookie, $postdata = ''){
$user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9';
$ch = curl_init($file);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
if($postdata!='') curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$file_content = curl_exec ($ch);
curl_close($ch);
return $file_content;
}
$codigo = source_extract('http://www.misitio.com/sección/pag?5454etcetc', './cookie.txt');
$user = 'user';
$pass = 'password';
$post = 'log='.$user.'&pwd='.$pass;
$codigo = source_extract('http://www.misitio.com/sección/pag?5454etcetc', './cookie.txt', $post);
$codigo = source_extract('http://www.misitio.com/sección/pag?5454etcetc', './cookie.txt', $post);
?>
Este código lo encontré por allí pero no se si sea obsoleto, o esta mal implementado pero no me funciona.
Me manda este error:
Fatal error: Call to undefined function curl_init() in C:\wamp\www\Read\read_cookie.php on line 5
Call Stack
# Time Memory Function Location
1 0.0008 377240 {main}( ) ..\read_cookie.php:0
2 0.0008 377384 source_extract( ) ..\read_cookie.php:18