lundi 1 avril 2013

Sockets php avec fsockopen

Utilisation des sockets php

Voici un exemple d'utilisation des sockets en php.
Dans cette exemple, on ce connecte au site site.com, et on récupère une page.

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.


<?php
// Exemple de récupération d'un document via HTTP
// en utilisant directement les sockets.

$serveur = "www.site.com";
$document = "/demo/codes/socket_test.php";

$socket = fsockopen($serveur, 80, $codeErreur, $msgErreur);

if (!$socket)
{
    echo "La connexion via la socket a échouée.<br />";
    echo "Code d'erreur: $codeErreur<br />";
    echo "Message d'erreur: $msgErreur<br />";
    exit();
}

// Envoi de données au serveur
fputs($socket, "GET $document HTTP/1.1\r\n");
fputs($socket, "Host: $serveur\r\n");
fputs($socket, "\r\n");// Marque la fin des entêtes

// Lecture de la réponse et affichage du code source
while (!feof($socket))
{
    $donnees = fgets($socket, 512);

    echo htmlentities($donnees, ENT_QUOTES).'<br />';
}
?>

Aucun commentaire:

Enregistrer un commentaire