Função PHP fsockopen(): Tudo o Que Você Precisa Saber
Aprenda a usar a função fsockopen() do PHP para estabelecer conexões de rede via TCP/IP e comunicar-se com servidores externos.
Como desenvolvedor PHP, pode ser necessário estabelecer uma conexão de rede e comunicar-se com outro servidor usando o protocolo TCP/IP. A função fsockopen() fsockopen() fsockopen() stream_socket_client() ou cURL. Este artigo explica a função legada para fins de referência e migração.
O que é a Função fsockopen()?
A função fsockopen() abre uma conexão de rede TCP/IP com um host e porta especificados, permitindo que dados sejam enviados e recebidos por meio de ponteiros de arquivo.
Como Usar a Função fsockopen()
Usar a função fsockopen() é simples. Veja a sintaxe:
Sintaxe PHP
fsockopen($hostname, $port, &$errno, &$errstr, $timeout);A função aceita cinco parâmetros:
$hostname: O nome do host ou endereço IP do servidor.$port: O número da porta à qual se conectar.&$errno: Uma variável que armazena o número do erro, se houver.&$errstr: Uma variável que armazena a mensagem de erro, se houver.$timeoutfsockopen()default_socket_timeoutstream_socket_client()inisetting if omitted.
Nota: Para conexões seguras, prefixe o hostname com
ssl://tls://tls://example.com).
Veja um exemplo de como usar a função fsockopen() para estabelecer uma conexão de rede com um servidor e enviar/receber dados:
Exemplo de Uso
<?php
$host = "example.com";
$port = 80;
$timeout = 30;
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) {
echo "Error: $errstr ($errno)<br/>";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}Neste exemplo, usamos a função fsockopen() fsockopen() example.com fgets() function.
Nota: Para requisições HTTPS, use
tls://$hostvariable.
Conclusão
Embora fsockopen() fsockopen() stream_socket_client() ou cURL para novos projetos. Esta referência continua sendo útil para a manutenção de bases de código legadas.