Sobes.tech
Junior

Quelles fonctions réseau existent en PHP?

sobes.tech IA

Réponse de l'IA

En PHP, il existe de nombreuses fonctions réseau couvrant divers aspects du travail avec le réseau. Les plus couramment utilisées sont :

  • Section "Sockets" (Sockets) :
    • socket_create(): Crée une socket.
    • socket_connect(): Établit une connexion avec un hôte distant.
    • socket_bind(): Lie la socket à une adresse et un port.
    • socket_listen(): Écoute les connexions entrantes sur la socket.
    • socket_accept(): Accepte une connexion entrante.
    • socket_read(): Lit des données depuis la socket.
    • socket_write(): Écrit des données dans la socket.
    • socket_close(): Ferme la socket.
    • socket_last_error(): Renvoie le dernier code d'erreur de la socket.
    • socket_strerror(): Renvoie une description en chaîne de l'erreur de la socket.
<?php
// Exemple de création et de connexion d'une socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() a échoué : raison : " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Socket créé.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() a échoué : raison : ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Connexion établie.\n";
}
socket_close($socket); // Fermer la socket
?>
  • Section "URL" :
    • file_get_contents(): Lit le contenu d'un fichier dans une chaîne (peut être utilisé pour HTTP).
    • file_put_contents(): Écrit des données dans un fichier (peut être utilisé pour HTTP POST).
    • get_headers(): Renvoie les en-têtes de la réponse HTTP.
    • parse_url(): Analyse une URL en ses composants.
    • http_build_query(): Génère une chaîne de requête.
  • Section "DNS" :
    • gethostbyname(): Renvoie l'adresse IPv4 de l'hôte.
    • gethostbyaddr(): Renvoie le nom de l'hôte pour une adresse IP.
    • getmxrr(): Obtient les enregistrements MX (échange de courrier) pour un domaine.
  • Section "cURL" (nécessite l'extension cURL) : Fournit un mécanisme client multifonction pour effectuer des requêtes HTTP. Inclut des fonctions pour travailler avec les cookies, les proxies, l'authentification, etc.
    • curl_init(): Initialise une session cURL.
    • curl_setopt(): Définit des options pour la session cURL.
    • curl_exec(): Exécute la session cURL.
    • curl_close(): Ferme la session cURL.
<?php
// Exemple d'utilisation de cURL pour obtenir le contenu d'une page
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Retourne le résultat sous forme de chaîne

$output = curl_exec($ch);

if ($output === false) {
    echo "Erreur cURL : " . curl_error($ch);
} else {
    echo $output;
}

curl_close($ch);
?>
  • Section "Stream" (flux) : Les flux PHP fournissent une interface unifiée pour différents types de ressources, y compris les sockets réseau et HTTP.
    • stream_socket_client(): Ouvre une connexion réseau client.
    • stream_socket_server(): Crée une connexion réseau serveur.
    • stream_select(): Attend des changements dans l'état de plusieurs flux.
  • Section "FTP" : Fonctions pour travailler avec des serveurs FTP.
    • ftp_connect(): Établit une connexion avec un serveur FTP.
    • ftp_login(): Se connecte au serveur FTP.
    • ftp_get(): Télécharge un fichier depuis le serveur FTP.
    • ftp_put(): Télécharge un fichier vers le serveur FTP.
  • Section "Mail" : Fonctions pour envoyer des courriels.
    • mail(): Envoie un courriel.

Le choix d'une fonction spécifique dépend de la tâche. Pour travailler à bas niveau avec les protocoles, les sockets sont recommandés. Pour des requêtes HTTP simples, on peut utiliser file_get_contents() ou cURL. cURL est plus flexible et puissant pour des opérations HTTP complexes. Les flux offrent une approche plus abstraite pour les communications réseau.