W3docs

Funzione PHP fsockopen(): Tutto Quello che Devi Sapere

Scopri la funzione PHP fsockopen() per stabilire connessioni di rete TCP/IP, con sintassi, parametri ed esempi pratici per sviluppatori PHP.

Come sviluppatore PHP, potresti dover stabilire una connessione di rete e comunicare con un altro server utilizzando il protocollo TCP/IP. La funzione fsockopen() è un'utilità legacy per l'apertura di socket. Per le nuove applicazioni si preferisce stream_socket_client() o cURL. Questo articolo illustra la funzione legacy a scopo di riferimento e migrazione.

Che cos'è la funzione fsockopen()?

La funzione fsockopen() apre una connessione di rete TCP/IP verso un host e una porta specificati, consentendo l'invio e la ricezione di dati tramite puntatori a file.

Come utilizzare la funzione fsockopen()

Utilizzare la funzione fsockopen() è semplice. Ecco la sintassi:

Sintassi PHP

fsockopen($hostname, $port, &$errno, &$errstr, $timeout);

La funzione accetta cinque parametri:

  • $hostname : Il nome dell'host o l'indirizzo IP del server.
  • $port : Il numero di porta a cui connettersi.
  • &$errno : Una variabile che memorizza il numero di errore, se presente.
  • &$errstr : Una variabile che memorizza il messaggio di errore, se presente.
  • $timeout fsockopen() utilizza il valore di configurazione default_socket_timeout di stream_socket_client() tramite l'impostazione ini se omesso.

Nota: Per le connessioni sicure, aggiungi il prefisso ssl:// o tls:// al nome dell'host (ad esempio tls://example.com ).

Ecco un esempio di utilizzo della funzione fsockopen() per stabilire una connessione di rete con un server e inviare/ricevere dati:

Esempio di utilizzo

<?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);
}

In questo esempio, utilizziamo la funzione fsockopen() per connetterci a example.com e recuperare la risposta HTTP riga per riga usando la funzione fgets() .

Nota: Per le richieste HTTPS, utilizza il prefisso tls:// nella variabile $host .

Conclusione

Sebbene fsockopen() sia ancora disponibile, si consiglia di utilizzare stream_socket_client() o cURL per i nuovi progetti. Questo riferimento rimane utile per la manutenzione dei codici legacy.

Pratica

Pratica
Cosa fa la funzione fsockopen in PHP?
Cosa fa la funzione fsockopen in PHP?
Was this page helpful?