von adik |
ich hatte gerade erst kürzlich selber mal danach recherchiert und das gefunden:
http://www.icq.com/js/pcc.php?Uin=18006683
man erhält die daten als javascript variablen, aber das kann man ja konvertieren.
z.b. so:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62: |
<?
$file = fopen("http://www.icq.com/js/pcc.php?Uin=18006683","r");
while ($line = fgets($file, 1024)) {
$cont[] = $line;
}
fclose($file);
for($i=0;$i<count($cont);$i++){
$t = "";
$t = explode("=",$cont[$i]);
if(count($t) > 2){
$str = "";
for($j=2;$j<count($t);$j++){
$str .= $t[$j]."=";
}
$icqarr[(str_replace(" ","",$t[0]))] = str_replace(
"\n",
"",
str_replace(
"\r\n",
"",
str_replace(
"/whitepages",
"http://www.icq.com/whitepages",
html_entity_decode(
str_replace(
"src=\"/img","src=\"http://www.icq.com/img",
str_replace(
"&",
"&",
str_replace(
"/",
"/",
str_replace(
"\";",
"",
str_replace(
"\"; ",
"\";",
substr(
substr(
$str,
0,
-1
),
2
)
)
)
)
)
)
)
)
)
);
}
}
print_r($icqarr);
?>
|
|
von Andreas248 |
Hallo,
hätte da mal 2 Fragen zu dem letzten Code:
1. kann ich damit statt on und off auch abwesend mit abrufen?
und
2. hat jemand eine Idee, wieso der Status erkannt wird, wenn ich über ICQ rein gehe, nicht aber, wenn ich die gleiche ICQnr über Trillian nutze?
Danke im Voraus für die Antwort(en)!
Nachtrag:
Also hiermit funktioniert der 3. Status bei mir leider nicht:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22: | <?php
$icq = "XXXXXXXXX";
$fp = fsockopen ("status.icq.com", 80, &$errno, &$errstr, 30) or die("[ERROR - Could not connect to server (status.icq.com)]");
fputs($fp, "GET /online.gif?icq=$icq&img=5&online= HTTP/1.0\n\n");
while(!feof($fp) && !$icq_finished) {
$line = fgets ($fp,128);
if (substr($line,0,9) == 'Location:') {
if (substr($line,13,11) == 'online1.gif') { $online = "1"; $icq_finished = true;}
elseif (substr($line,13,11) == 'online0.gif') { $online = "0"; $icq_finished = true;}
elseif (substr($line,13,11) == 'online2.gif') { $online = "2"; $icq_finished = true;}
}
}
fclose($fp);
if($online == "1") { echo("Online"); }
elseif($online=="0") { echo("Offffffline"); }
elseif($online=="2") { echo("anders"); }
else { echo("da stimmt was nicht"); }
?> |
|
von MCM |
So, will nun mal dieses alte Thema noch mal hervorziehen, da ich soein script jetzt auch brauchte, hb ich mal in nem anderem Forum nachgefragt und dort konnte man mir weiterhelfen. Also, folgender Code, dann klappt es
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31: | <?php
$icq = "331715700";
$fp = fsockopen ("status.icq.com", 80, &$errno, &$errstr, 30) or die("[ERROR - Could not connect to server (status.icq.com)]");
fputs($fp, "GET /online.gif?icq=$icq&img=5&online= HTTP/1.0\n\n");
while(!feof($fp) && !$icq_finished) {
$line = fgets ($fp,128);
if (substr($line,0,9) == 'Location:') {
if (substr($line,13,11) == 'online1.gif') { // online
$online = "1";
$icq_finished = true;
} else {
$online = "0";
$icq_finished = true;
}
}
}
fclose($fp);
if($online == "1") {
echo("Online");
} elseif($online=="0") {
echo("Offffffline");
} else {
echo("da stimmt was nicht");
}
?> |
Musst halt nur die Textausgabe durch Bilde ersetzten. Kompletten Code gibts bei http://www.qatlantis.com/IMIndicator.php zum runterladen, allerdings noch mit allen möglichen Anhang, der eigentlich unnötig ist ;) |
von Xeal |
@ MCM:
Ich will aber nunmal nicht die standart bilder...
Auch wenn sie neutral sind |
von MCM |
Außerdem gibts unegefähr 25 verschiedene fertige Bilder von denen, wozu dann was eigenes. Einiges von denen ist sogar noch recht neutral
---
cya MCM
[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani] |
von MCM |
Hi,
was du dort hast (@ acid) ist ein bild.
Setzt das mal in ein bild tag, so etwa
1: | <img src="http://web.icq.com/whitepages/online?icq=125520245&img=20" border="0"> |
Und dann hats du das Standardbild.
---
cya MCM
[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani] |
von languitar |
Ich hab glaub ich gerade eine Lösungsmöglichkeit gefunden. Weiß nur noch nicht wie das in PHP zu realisieren ist:
Die Whitepages benutzen folgende Abfrage: 1: | http://people.icq.com/whitepages/online/1,,,00.gif?icq=125520245&img=20 |
Wenn der user online ist wird auf http://status.icq.com/20/online1.gif weitergeleitet, bei offline auf http://status.icq.com/20/online0.gif und bei allem anderen auf http://status.icq.com/20/online2.gif . Das muss jetzt nur noch abgefragt werden und dann kann man die neuen Bilder da drüberlegen. |
von languitar |
HG schrieb am 03.05.2003 16:26
Ich hab das mal gestestet, und es erscheint, daß der ICQ-Server folgendes zurückgibt:
1:
2:
3: |
Location: http://status.icq.com/online.gif?icq=158610375&img=5
|
Ich denke, daß du aus diesem String erstmal rausziehen musst, ob online oder nicht, und dann das entsprechende Bild in den HTML-Code einfügen musst.
=> das Skript kommt an den verschiedenen if's mit return werten vorbei und gibt dann anschließend false zurück. |
Wie willst du aus dem String denn den Status auslesen? Der steht da doch gar nicht drin.
Ich bin noch mal über diesen Link gestolpert. Der sagt zumindest schon mal was, auch wenn's überall nur offline ist: http://alfaweb.ch/cgi-forum/php_icq-status-abfragen.php |
von Xeal |
lies mal den threat genau durch ...
Ich will nämlich nicht die standart on/off pics... |
von acid |
ihr koennt das auch sehr viel einfacher machen und einfach den link hier als bild einbinden
http://wwp.icq.com/scripts/online.dll?icq=UIN&img=5
anstatt UIN halt die icq nr, dan zeigt es euch an, z.b. ne gruene blume falls on, ne rote falls off, ne graue falls er den status disabled hat,
ueber img koennt ihr verschiedene bilder auswaehlen die den status anzeigen,
glaub 1 bis 15 is moeglich. |
von HG |
Ich hab das mal gestestet, und es erscheint, daß der ICQ-Server folgendes zurückgibt:
1:
2:
3: |
Location: http://status.icq.com/online.gif?icq=158610375&img=5
|
Ich denke, daß du aus diesem String erstmal rausziehen musst, ob online oder nicht, und dann das entsprechende Bild in den HTML-Code einfügen musst.
=> das Skript kommt an den verschiedenen if's mit return werten vorbei und gibt dann anschließend false zurück. |
von languitar |
nee, die übergibst du ja im aufruf der Funktion.
Zeigt der das Echo denn an? |
von Andreas S |
Ich hab so den Verdacht dass ICQ das Verfahren schon wieder umgestellt hat und deshalb das Script nicht mehr geht. |
von Xeal |
kann es nicht auch einfach sein, dass die variable $uin nicht definiert wurde ?! |
von languitar |
bau mal in die funktion ganz ans ende sowas wie wie echo "blablabla"; ein. Wenn der das nicht macht is nen Syntaxfehler in der Funktion drin. |
von Xeal |
nö, nur ne leere seite |
von Andreas S |
Bekommst du irgendeine Fehlermeldung? |
von Xeal |
Also ich kann mir nicht helfen, aber es funtzt mal wieder net *g*
Kennen wir ja schon ;)
Hier der code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>>> Xeal.de </TITLE>
<link rel="stylesheet" type="text/css" href="css.css">
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 5.50.4134.600" name=GENERATOR>
</HEAD>
<BODY bgColor=#F2F0F1 leftMargin=0 topMargin=0 MARGINHEIGHT="0" MARGINWIDTH="0">
<table width="135" border="0">
<tr>
<td>
<div align="center"></div>
<?
function GetICQ($uin) {
if (!is_numeric($uin)) return FALSE;
$fp = fsockopen('web.icq.com', 80, &$errno, &$errstr, 8);
if (!$fp) return FALSE;
$request = "HEAD /whitepages/online?icq=$uin&img=5 HTTP/1.0rn"
."Host: web.icq.comrn"
."Connection: closernrn";
fputs($fp, $request);
do {
$response = fgets($fp, 1024);
}
while (!feof($fp) && !stristr($response, 'Location'));
fclose($fp);
if (strstr($response, '4367')) return '<img src="icqon.jpg" border=0>';
if (strstr($response, '4349')) return '<img src="icqoff.jpg" border=0>';
if (strstr($response, '4386')) return '<img src="icqdis.jpg" border=0>';
return FALSE;
}
// Aufruf:
echo GetICQ(158610375);
?>
</td>
</tr>
</table>
</BODY></HTML>
Weiss jemand wo der Fehler ist ?? |
von michaelh |
Nützlich. |
von Andreas S |
abändern in:
1: | return '<img src=\"images/online.gif\" border=0>'; |
und das gleiche mit den zwei (offline & disabled) anderen... |
von Xeal |
Wie muss man das jetzt verändern, um ein bestimmtes bild anzeigen zu lassen ?? |
von pizzataxi |
Great, ich glaub dass ich das sehr gut einsetzen kann... Danke!!!
|
von Andreas S |
Da kann euch geholfen werden
http://www.dclp-faq.de/q/q-code-icq.html |
von pizzataxi |
Fänd ich auch interessant wie das geht...
|
von Xeal |
Hallo.
Ich will meinen icq status auf meiner page anzeigen lassen. Aber ich möchte nicht diese unschönen online/offline bildchen von icq.com verwenden...
Kann mir jemand verraten wie das in icq geht ? |
|