Определяем статус ICQВсе мы с вами пользуемся самым популярным интернет-пейджером: ICQ . Ну а что? Удобная и полезная программа, которая позволяет быстро и без затей поболтать с кем угодно на любом расстоянии.
ICQ была придумана в 1996 году Израильскими программистами из Тель-Авив и называлась эта компания - Mirabilis. Но уже в 1998 году крупнейший американский провайдер AOL (America On-Line) выкупил ICQ за 400 миллионов долларов. На данный момент это самый популярная система обмена мгновенными сообщениями
Но в данной статье пойдет речь не о ICQ а о том, каким образом мы можем отобразить статус ICQ пользователя у себя на сайте. А точнее я покажу несколько вариантов реализации данной задачи.
// Возвращает страницу по заданному URL URL вместе с http://
function get_page ($url) {
$cells = parse_url($url);
$host = $cells['host'];
$path = $cells['path'] . '?' . $cells['query'];
$fp = fsockopen ("${host}", 80);
$headers = "GET ${path} HTTP/1.0rn"
."Host: ${host}rn"
."Referer: http://${host}"
."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.7) Gecko/20050414 Firefox/1.0.3rn"
."Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5rn"
."Accept-Language: ru,en-us;q=0.7,en;q=0.3rn"
."Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7rn"
."Keep-Alive: 300rn"
."Proxy-Connection: keep-alivernrn";
fwrite ($fp, $headers);
while (!feof ($fp)) {
$str .= fgets($fp, 1024);
}
fclose($fp);
return $str;
};
// 0 - если человек ( UIN ) не в сети ICQ,
// 1 - если человек ( UIN ) в сети ICQ,
// 2 - неопределенное состояние
function get_ICQ_status($uin) {
$path = 'http://status.icq.com/online.gif?icq=' . $uin . '&img=5';
$page = get_page($path);
preg_match('|online([d]{1,2}).gif|si', $page, $matchs);
$return = ($matchs[1]) ? $matchs[1] : 0;
return $return;
}
echo get_ICQ_status('НАШ_UIN');
На выходе получим 0 - если человек ( UIN ) не в сети ICQ, 1 - если человек ( UIN ) в сети ICQ, 2 - неопределенное состояние. Далее по желанию и необходимости можем поставить изображения или делать то, что нам необходимо.
Минусами этого способа является то, что скрипт проверки статуса должен быть установлена непосредственно на сайте (который должен еще поддерживать PHP), и то, что в случае проблем со связью между сервером страницы и ICQ страница будет дольше грузится.
Можно избежать этого, положив этот код в отдельный файл и загрузив его внутрь страницы внутри inline frame (тег iframe).
Также имеется наиболее простой способ определения состояния (статуса) пользователя ICQ не требующий от сайта поддержку PHP.
<img src="http://status.icq.com/online.gif?icq=НАШ_УИН_НОМЕР&img=5">
Данный способ будет выводить картинку соответствующую статусу номера ICQ который мы укажем.21-01-08 12:01:18 Написать комментарийВНИМАНИЕ: Все поля необходимо заполнить |
Гость - 9-07-08 13:07:33
Фтопку!!! Ниработаид!!! ХЗ почиму :-(((((
Могет есть еще вариантики?