Socket PHP HTML Client

Posted on Posted in tutorial

Para que precisa de um código que acesse outra página a partir do seu servidor, para manipulá-la antes de exibir, ou até mesmo somente utilizar os dados.
Segue uma função que desenvolvi para fazer se passar por um navegador web e receber todo HTML de uma página de terceiro.

Observações:

  • Não me responsabilizo pela má utilização deste código;
  • Este código provavelmente não funcionará em hospedagens (pois eles retiram as funcionalidades de socket do PHP);
  • Esta função somente retorna o HTML, o que fazer com ele fica por sua conta
<?php
function getHTML ($from) {
// —– Declarando variáveis —– //
$addr = explode(‘:’, $from);
$host = $addr[0];
$ipsr = gethostbyname(“$host”);
$get = “/index.html”; //Modifique ao seu gosto

if(isset($addr[1])) $port = $addr[1];
else $port = 80;

// —– Iniciando conexao com o site —– //
if(!$sock = socket_create(AF_INET, SOCK_STREAM, 0))
die(“Não foi possivel iniciar conexão!”);
if(!socket_connect($sock, $ipsr, $port))
die(“Não foi possivel conectar ao site $host!”);

// —– Declarando Cabecalho de requisicao de pag —– //
$send = “GET “.$get.” HTTP/1.0\r\n”;
$send.= “Host: “.$host.”\r\n”;
$send.= “Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n”;
$send.= “Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3\r\n”;
$send.= “Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n”;
$send.= “Connection: close\r\n”;
$send.= “Content-Type: text/html\r\n\r\n”;

// —– Enviando requisicao e lendo resposta do site —– //
$saida = “”;
socket_write ($sock, $send, strlen($send));
while ($temp = socket_read($sock, 1024)) $saida .= $temp;
socket_close($sock);
return($saida);
}
?>

Qualquer dúvida, postem aí…

Leave a Reply

Your email address will not be published. Required fields are marked *