dns_get_record
<<<
fsockopen gethostbyaddr
>>>

6.25 Réseau
6 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
checkdnsrr
closelog
debugger_off
debugger_on
define_syslog_variables
dns_check_record
dns_get_mx
dns_get_record
->fsockopen
gethostbyaddr
gethostbyname
gethostbynamel
getmxrr
getprotobyname
getprotobynumber
getservbyname
getservbyport
inet_ntop
inet_pton
ip2long
long2ip
openlog
pfsockopen
socket_get_status
socket_set_blocking
socket_set_timeout
syslog

6.25.15 fsockopen()Ouvre une socket de connexion Internet ou Unix

[ Exemples avec fsockopen ]   PHP 3, PHP 4, PHP 5

resource  fsockopen ( string   target , int   port , int   errno , string   errstr , float   timeout )

Initalise une connexion par socket à la ressource spécifiée par target . PHP supporte les cibles dans les domaines Internet et Unix comme décrit dans  transports . Une liste des types de transports peut également être trouvée en utilisant la fonction stream_get_transports .

Note

Si vous avez besoin de définir un délai limite pour lire/écrire des données à travers cette socket, utilisez la fonction stream_set_timeout , comme le paramètre timeout de la fonction fsockopen uniquement appliqué lors de la connexion de la socket.

Depuis PHP 4.3.0, si vous avez compilé le support OpenSSL, vous pouvez préfixer le paramètre hostname avec soit ' ssl:// ' soit ' tls:// ' pour utiliser une connexion SSL ou TLS avec le client à travers TCP/IP pour connecter l'hôte distant.

fsockopen retourne un pointeur de fichier qui peut être utilisé avec d'autres fonctions fichiers, telles fgets , fgetss , fputs , fclose et feof .

Si l'appel échoue, fsockopen retourne FALSE , et si les options errno et errstr ont été fournies, elles contiennent désormais les raisons de l'échec. Si l'erreur retournée est 0 et que la fonction retourne FALSE , c'est une indication d'erreur. C'est probablement dû à une erreur d'initialisation de la socket. Notez que errno et errstr sont toujours passées par référence.

Suivant les environnements, le type 'domaine Unix' ou l'option timeout ne sont pas toujours disponibles.

La socket sera ouverte par défaut en mode bloquant. Vous pouvez changer de mode en utilisant : stream_set_blocking .
Exemple avec fsockopen

<?php
$fp
= fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!
$fp) {
    echo
"$errstr ($errno)<br />\n";
} else {
    
$out = "GET / HTTP/1.1\r\n";
    
$out .= "Host: www.example.com\r\n";
    
$out .= "Connection: Close\r\n\r\n";

    
fwrite($fp, $out);
    while (!
feof($fp)) {
        echo
fgets($fp, 128);
    }
    
fclose($fp);
}
?>
L'exemple ci-dessous décrit comment lire la date et l'heure grâce à un service UDP "daytime" (port 13), sur votre propre machine.
Utilisation d'une connexion UDP

<?php
$fp
= fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!
$fp) {
    echo
"ERREUR: $errno - $errstr<br />\n";
} else {
    
fwrite($fp, "\n");
    echo
fread($fp, 26);
    
fclose($fp);
}
?>
Attention

Les sockets UDP semblent quelques fois avoir été ouvertes sans erreur, même si l'hôte distant n'est pas joignable. L'erreur apparaît alors uniquement lorsque vous tentez de lire/écrire sur la socket. La raison de cela est qu'UDP est un protocole "connectionless", ce qui signifie que le système ne tentera pas d'établir un lien pour la socket tant qu'il ne doit pas recevoir/envoyer de données.

Note

Lors de la spécification d'adresses IPv6 au format numérique (e.g. fe80::1) vous devez placer l'adresse IP entre crochets. Par exemple : tcp://[fe80::1]:80 .

Note

Le paramètre timeout a été introduit en PHP 3.0.9 et le support UDP en PHP 4.

Voir aussi pfsockopen , socket_set_blocking , socket_set_timeout , fgets , fgetss , fwrite , fclose , feof et l'extension Curl .

<< fsockopen >>
dns_get_record Réseau gethostbyaddr