Aller au contenu

Fonction PHP pfsockopen() : tout ce qu’il faut savoir

En tant que développeur PHP, vous pouvez avoir besoin d’établir une connexion socket persistante pour communiquer entre votre script PHP et un serveur distant. La fonction pfsockopen() est une fonction intégrée de PHP qui vous permet de créer une connexion socket persistante. Remarque : cette fonction a été dépréciée dans PHP 8.1 et supprimée dans PHP 8.2. Elle n’est plus disponible dans les versions modernes de PHP. Dans cet article, nous allons examiner sa syntaxe historique et son utilisation.

Qu’est-ce que la fonction pfsockopen() ?

Historiquement, cette fonction était conçue pour maintenir la connexion ouverte pour les requêtes suivantes, évitant ainsi la surcharge liée à sa réouverture à chaque fois.

Comment utiliser la fonction pfsockopen()

L’utilisation de la fonction pfsockopen() est simple. Voici la syntaxe de la fonction :

La syntaxe PHP de la fonction pfsockopen()

php
pfsockopen($hostname, $port, &$errno, &$errstr, $timeout);

La fonction prend cinq paramètres :

  • $hostname : le nom d’hôte ou l’adresse IP du serveur auquel se connecter.
  • $port : le numéro de port auquel se connecter.
  • $errno : une variable passée par référence qui sera définie avec le numéro d’erreur si une erreur se produit.
  • $errstr : une variable passée par référence qui sera définie avec le message d’erreur si une erreur se produit.
  • $timeout : le délai d’attente en secondes.

Valeur de retour : renvoie un flux/une ressource en cas de succès, ou false en cas d’échec.

Voici un exemple montrant comment utiliser la fonction pfsockopen() pour créer une connexion socket persistante, gérer les erreurs et échanger des données :

Comment utiliser la fonction pfsockopen() ?

php
<?php

$hostname = "example.com";
$port = 80;
$errno = 0;
$errstr = "";
$timeout = 30;

$socket = pfsockopen($hostname, $port, $errno, $errstr, $timeout);

if ($socket === false) {
    echo "Connection failed: $errno - $errstr";
} else {
    fwrite($socket, "GET / HTTP/1.1\r\nHost: $hostname\r\n\r\n");
    $response = fread($socket, 2048);
    echo $response;
    fclose($socket);
}
?>

Dans cet exemple, nous utilisons la fonction pfsockopen() pour créer une connexion socket persistante au serveur « example.com » sur le port 80. Nous spécifions également le délai d’attente à 30 secondes. Si une erreur se produit, le numéro d’erreur sera stocké dans la variable $errno et le message d’erreur sera stocké dans la variable $errstr. Nous vérifions ensuite si la connexion a réussi avant d’envoyer une requête avec fwrite(), de lire la réponse avec fread(), puis de fermer la connexion avec fclose().

Conclusion

La fonction pfsockopen() est un outil utile pour créer une connexion socket persistante dans votre application web PHP. En comprenant la syntaxe et l’utilisation de cette fonction, vous pouvez facilement créer une connexion socket persistante vers un serveur distant. Notez que pour les applications modernes, stream_socket_client() est souvent recommandé comme alternative plus flexible pour gérer les connexions persistantes. Nous espérons que cet article vous a été instructif et utile pour comprendre la fonction pfsockopen() en PHP.

Practice

What does the 'pfsockopen' function do in PHP?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.