webForumDet fria alternativet

readfile() på icq.com

11 svar · 489 visningar · startad av Niklasson

NiklassonMedlem sedan nov. 2000857 inlägg
#1

Varför fungerar inte detta?

Scriptet är till för att kolla om min ICQ är online eller inte. Originalet finns i en mer avancerad version i Scriptarkivet..

Jag vet att URL:en ändrats men det fungerar inte med den gamla adressen heller ..

Har ICQ ändrat rättigheterna eller nåt? :(

<?
$leta = readfile("http://web.icq.com/whitepages/online?icq=$uin&img=5");
$len = strlen($leta[1]);
?>
spangoMedlem sedan juni 20008 205 inlägg
#2

Och servern är konfad för att tillåta http/ftp-läsningar?

NiklassonMedlem sedan nov. 2000857 inlägg
#3

Jag använder det lokalt också och använder readfile() på en annan sida och det fungerar. Visserligen till en sida under min egen domän men ändå..

Skall kolla med hotellet ändå..

NiklassonMedlem sedan nov. 2000857 inlägg
#4

Det har fortfarande int elöst sig. Kanske nån orkar testa?
(tack stevenet för försöket)

stevenetMedlem sedan juni 20001 251 inlägg
#5

Tack. Jag tror fortfarande att det är en redirect som orsakar problemet.

nicclasMedlem sedan feb. 20001 050 inlägg
#6

Jo, web.icq.com gör en redirect till den aktuella gif:en. Från manualen: "Versions prior to PHP 4.0.5 do not handle HTTP redirects." Vilken PHP-version kör du?

Annars får du väl öppna en socket istället, och eventuellt själv följa "redirect:en".

/nicclas - https://www.frisim.com

NiklassonMedlem sedan nov. 2000857 inlägg
#7

Kör tydligen 4.0.4 :(

Socket ja.. Men detta scriptet fungerade inte heller:
http://www.webforum.nu/showthread.php?s=&postid=96118#post96118

nicclasMedlem sedan feb. 20001 050 inlägg
#8

Jo, scriptet fungerar alright, men icq.com har byggt om sitt system lite sen denna kod skrevs, tydligen.
URLen: http://wwp.icq.com/scripts/online.dll?icq=$uin&img=7 returnerar ett "HTTP/1.1 301 Moved Permanently" och redirect:ar till en bild "Location: /lib/image/0,,4400,00.gif" eller "Location: /lib/image/0,,4389,00.gif" beroende på online/offline osv.

Endera "hårdkodar" du dina egna bilder beroende på vilken gif du redirect:as till, eller också skriver du lite kod för att följa upp redirect:en som är till en URL av typ: http://wwp.icq.com/lib/image/0,,4400,00.gif

Jag skulle ha uppdaterat mitt PHP istället ;)

/nicclas - https://www.frisim.com

NiklassonMedlem sedan nov. 2000857 inlägg
#9

Har kollat med webbhotellet och de skall uppgradera all serverprogramvara inom en månad..

Om nån har lust att hjälpa mig med en lösning under den tiden vore det ytterst tacksamt, annars får jag nog lugna mig för jag ger mig inte på det själv eftersom jag inte vet hur det fungerar... ;)

nicclasMedlem sedan feb. 20001 050 inlägg
#10

Prova detta, det funkar för mig:

<?
function get_status($uin){
    $fp = fsockopen ("wwp.icq.com", 80, &$errno, &$errstr, 30);
    if(!$fp) {
      echo "$errstr ($errno)<br>\n"; 
    } else {
      fputs($fp, "GET /scripts/online.dll?icq=$uin&img=7 HTTP/1.0\n\n");
      $line = fread($fp, 2048);
      return $line;
  }
}
$uin = "14199362";
$res=get_status($uin);
$res=trim(preg_replace("/^(.*?)Location:(.*?).gif(.*)$/ims","\\2",$res));
header ("Content-type: image/gif");
readfile("http://wwp.icq.com".$res.".gif");
?>

Denna sida returnerar icq.com's gif-bild för online/offline osv.

/nicclas - https://www.frisim.com

stevenetMedlem sedan juni 20001 251 inlägg
#11

Kolla in Snoopy, http://snoopy.sourceforge.com, om nu inte nicclas exempel skulle fungera.
"supports browser redirects, and controlled depth of redirects"

NiklassonMedlem sedan nov. 2000857 inlägg
#12

Fungerar hur bra som helst! Tack så hemskt mycket nicclas.. :birp

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)