Проверка статуса ICQ
А вот, как узнать именно статус, то это искать у них надо ещё...
http://www.phpclasses.org/browse/package/1524.html
http://www.phpclasses.org/browse/package/2241.html
Мне понадобилось пятнадцать минут, чтобы добраться и посмотреть скрипт по этим ссылкам (регистрация, ожидание ссылки на пароль...). Там то же самое, что я написал ))))
$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");
}
?>
Это по первой ссылке по тому запросу, который я написал. Такое нравится? :)
Да то же самое... просто уже готовые либы.... =)
Мой-то вариант - для браузера. Понятно, что может возникнуть ситуация, когда это нужно на серванте узнать. Правда, мне в голову не приходит, что должно случится, чтобы это нужно было знать... Разве что спамерам, чтобы не в воздух спамить...
Так можно весь этот код ещё сократить:
$HDRS = get_headers(http://status.icq.com/online.gif?icq={$ICQ_NUM});
foreach($HDRS as $Header){
if (is_int(strpos($Header, "Location"))){
$Status = substr($Header, -5, 1);
}
}
switch ($Status){
case 0: echo "OFF"; break;
case 1: echo "ON"; break;
case 2: echo "AWAY"; break;
}
} catch (Exception $e){
echo "Error {$e->getCode()}. {$e->getMessage()}";
}
Кому знать? Какой службы? Попробуй запусти любой из приведённых скриптов и засеки время. А потом посчитай, сколько юзерь у браузера будет ждать твою страницу, которая прилетит к нему секунд через пять, не раньше. И только потому, что тебе зачем-то захотелось на сервере узнать статус аськи какой-то мифической службы поддержки. Зачем всё это?
Бывает служба поддержки пользователей по телефону, электронной почте или ICQ. Вам интересно слышать короткие гудки по телефону? Думаю нет. Чем аська хуже?
Бывает служба поддержки пользователей по телефону, электронной почте или ICQ. Вам интересно слышать короткие гудки по телефону? Думаю нет. Чем аська хуже?
Я знаю, что есть такой способ связи. Я не понимаю, зачем нужно на стороне сервера узнавать статус соединения. Насколько я понимаю в апельсинах, для связи по ICQ нужно включить соответствующий клиент и связаться. Там-то уж точно виден статус респондента. Но зачем это узнавать с помощью PHP?
Кстати, время работы скрипта я тоже замерил на четырех хостах -- максимум 0.7 секунд.
Кстати, время работы скрипта я тоже замерил на четырех хостах -- максимум 0.7 секунд.
О! .7 секунды! Обычно более-менее грамотный движок на всё - от подключяения к БД и выборки данных, до рендера шаблонов - тратит 1-2-3 секунды, при этом задействуются кучи классов, создаются десятки объектов... А тут - почти секунда только для того, чтобы узнать одну цифру. И главное для чего??? Не проще-ли всё это написать в HTML, чтобы браузер этим занимался, как я написал ещё в самом верху? Какие есть веские причины выполнять всё это действие на сервере?
Ошибаешься. Хост тут не при делах. Это время уходит на получение ответа от icq.com. А он - достаточно загруженный, поэтому ждать ответа можно и пять секунд и даже больше. Браузер, соответственно, тоже будет ждать с безнадёжным видом страницы...
0.7 секунды - это для выполнения скрипта много.
А насчет программистов и поиска - скажу так. Эту тему будет полезно почитать не только мне. Насчет того кто и как становится программистом - не Вам решать. Прежде чем гнать на человека - надо знать чем он занимается. Может он в 5 раз умнее тебя, только с проблемой никогда не сталкивался. Если ломит отвечать - не отвечай.
Всем кто принимал участие - спасибо.
Если все будут искать только в поисковиках - форумов не будет.
Проверяйте форум - если информации нет, то задавайте вопрос. Так и формируются базы знаний. Думаю, что тема раскрыта.:)
А насчет программистов и поиска - скажу так. Эту тему будет полезно почитать не только мне. Насчет того кто и как становится программистом - не Вам решать. Прежде чем гнать на человека - надо знать чем он занимается. Может он в 5 раз умнее тебя, только с проблемой никогда не сталкивался. Если ломит отвечать - не отвечай.
Всем кто принимал участие - спасибо.
Если все будут искать только в поисковиках - форумов не будет.
Проверяйте форум - если информации нет, то задавайте вопрос. Так и формируются базы знаний. Думаю, что тема раскрыта.:)
Тебя тут кто-то обидел??? Кто-то задел тему про то, кто и как становитсо программистом? MMN, здесь этого не затронуто....
Задача выполнена. Все остальное прошу в личку. Тему закрываю.