Vlastní indikátor ICQ online a offline v PHP

    0

    Přidat do svých webových stránek indikátor, zda je uživatel daného ICQ připojen, jistě není problém, a pokud nevíte jak, podívejte se přímo na stránky ICQ.com. Co dělat v případě, kdy se vám nabízené obrázky nelíbí, chcete jen textovou informaci nebo chcete v závislosti na stavu uživatele dynamicky generovat různý kód stránek (např. vložit do stránek formulář pro odeslání zprávy do ICQ pouze pokud jsem Online)?

    Jednou z cest je analýza výstupu, který dává skript posílající obrázky do prohlížeče webové stránky. Adresa skriptu je http://web.icq.com/whitepages/online?icq=XXXXX&img=5. Uvedený skript zjistí stav uživatele a přesměruje v závislosti na stavu na patřičný obrázek, v tomto případě daný parametrem IMG. V našem případě je 5 zvoleno proto, že obrázek s tímto parametrem má nejmenší velikost v bytech. Ve skriptu se naváže spojení se serverem, pošle se požadavek na ztažení daného obrázku a poté se vyhodnotí odpověď serveru. Výsledkem je celkem jednoduchý skript, který s využitím regulárních výrazů spolehlivě rozliší stav Online a Offline. Voláte ho vždy s parametrem icq, např. icqcheck.php?icq=22635022, případně si ho pomocí include vložíte do vlastního skriptu.

    <?PHP
    $icqstat="Offline";  // text pro stav offline
    $fp = fsockopen("web.icq.com", 80); // otevřít socket serveru na portu 80 (http)
    if($fp) {  // otestovat, zda se podařilo spojit se serverem
      fputs($fp, "GET /whitepages/online?icq=$icq&img=5 HTTP/1.0\r\n\r\n"); // odeslat požadavek na ztažení souboru
      while ($line=FGetS($fp,128)) {
        if (ERegI("^Location:.*$", $line)) { // zjistit, zda v odpovědi serveru je část hlavičky pro přesměrování
          if (ERegI("4367",$line))  // pokud je v odpovědi 4367, jde o "zelenou květinku", uživatel je online
            $icqstat="Online";  // nastavit text pro stav online
          break;
        }
      }
    }
    echo $icqstat; // vypsat aktuální stav uživatele ICQ
    ?>

    Funkce uvedeného skriptu je závislá na funkci skriptu serveru web.icq.com – pokud bude jeho funkce změněna, bude nutné skript a případně regulární výraz změnit také.

    Starší komentáře ke článku

    Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

    Žádný příspěvek v diskuzi

    Odpovědět