webForumDet fria alternativet

readfile() på icq.com

PHPur PHP

11 svar · 489 visningar · startad av Niklasson

Medlem sedan nov. 2000857 inlägg
Frågan#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]);
?>
Medlem sedan juni 20008 205 inlägg
#2

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

Medlem 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å..

Medlem 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)

Medlem sedan juni 20001 251 inlägg
#5

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

Medlem 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

Medlem 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

Medlem 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

Medlem 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... ;)

Medlem 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

Medlem 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"

Medlem sedan nov. 2000857 inlägg
#12

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

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