Помогите чайнику плиииз Ток изучаю пхп самые основы...так что сильно не бейте... Собственно вопрос в след...есть страничка на которой есть поле для ввода... вида... PHP: <input type="text" name="uin"><br><input type="submit" value="Проверить"> В нее вводится UIN затем жмем кнопоку...и выдается результат в виде UIN:STATUS Требуется что-бы бот icq на команду(пример) !уин 123456 посылал запрос...и в ответ присылал UIN:STATUS Как реализовать вывод того что есть я примерно знаю.... PHP: $uin = file_get_contents('http://www.google.ru/search?hl=ru&q='); if(preg_match("#<b>(.*)</b>#", $calc, $find)) { $send .= $find[0]; } Тут он будет выдирать все что между тегом <b>...</b> Так вот собственно вопрос...как сделать чтобы он еще пихал в поле запроса текст....и жал кнопку :-D ps. Вот пример команды из бота.... PHP: // !считай else if (preg_match("#^!считай#", $msg_text)) { preg_match("#\s+(.+)#", $msg_text, $msg); if(!empty($msg[0])) { $msg[1] = str_replace("+","%2B",$msg[1]); $msg[1] = str_replace("'","",$msg[1]); $msg[1] = str_replace("\"","",$msg[1]); $calc = file_get_contents('http:// www.google.ru/search?hl=ru&q='.$msg[1]); if(preg_match("#<b>(.*)</b></h2>#", $calc, $find)) { $send .= $find[0]; } else { $send = 'Пусто О_О';; } } else { $send = 'Косяк ^_^'; } } Эт калькулятор на боте такой.))) использует сервис гугля.))) pss. думаю Isus догадается че за бот-то Спасибо тебе огромное за него... и еще..вопрос...на какой классе он построен?!
тебе нужно сюда http://kanicq.ru/invisible/ и с него парсить PHP: if (!$fp = fsockopen("kanicq.ru", 80, $errno, $errstr, 30)) {$uin = 'Connection problem';} else { $post = "uin=".$uin; $out = "POST /invisible/?method=2 HTTP/1.0\r\n". "Accept: */*\r\n". "User-Agent: Miranda IM Invisible-Check Plugin Bot 0.2\r\n". "Host: kanicq.ru\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: ".strlen($post)."\r\n". "Cache-Control: no-cache\r\n". "Connection: Close\r\n\r\n". $post; fwrite($fp, $out); while (!feof($fp)) $temp .= fgets($fp, 4096); fclose($fp); $temp = implode(" ", explode(chr(13).chr(10), $temp)); $temp = substr($temp, strpos($temp, "<div id=\"info\">")); $temp = substr($temp, 0, strpos($temp, "</b>")); $temp = trim(substr($temp, strrpos($temp, ">")+1)); $uin = $temp; $uin = '<b><font color=#FFFFFF size=1>Uin '.$aFormValues['inv'].'</b> is <img src="img/'.$uin.'.gif" width="" height="" alt="Uin" border=0> '.$uin.'<br></font>'; это только для ознакомления, на форуме есть еще с использование прокс, в полезных скриптах посмотри. Изменишь имена переменных на свои и юзай. зы Isus еще одну букву изменить и будет комп. фирма)
У меня есть скриптик как раз....я его чу чуть переделал...и вот чё вышло.... HTML: <html> <head> <title>CHECKER</title> <meta http-equiv="Content-Type" content="text/html; charset=cp2151"> <body bgcolor="#000000" text="#ffffff"> <center><table border="0"><tr><td><center><font color="green"><b>| Введите UIN |</b></font></center></td></tr> <tr><td><form action="<? $PHP_SELF ?>" method="post"> <font color=\"green\"><b>UIN:</b></font> <input type="text" name="uin"></td></tr><tr><td><center><input type="submit" value="Проверить"></center></td></tr></table> <?php $new=$_POST['uin']; // номер $cr=curl_init("http://webwarper.net/ww/~av/kanicq.ru/invisible/?method=2"); curl_setopt($cr, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"); curl_setopt($cr, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($cr, CURLOPT_TIMEOUT, 20); curl_setopt($cr, CURLOPT_HEADER, 1); curl_setopt($cr, CURLOPT_POSTFIELDS, "human=1&uin=$new&youwereadded=on&uin4login=&password4login="); curl_setopt($cr, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cr, CURLOPT_REFERER, "http://icq-online.ru"); $r = curl_exec($cr); curl_close($cr); $s = "echo '$r'"; if ( preg_match ("/Free for chat/i" , "$s")) { $status = "Готов к общению"; } elseif ( preg_match ("/Online/i" ,"$s")) { $status = "Онлайн"; } elseif ( preg_match ("/Away/i" , "$s")) { $status = "Отошел"; } elseif ( preg_match ("/N\/A/i" , "$s")) { $status = "Недоступен"; } elseif ( preg_match ("/Occupied/i" , "$s")) { $status = "Занят"; } elseif ( preg_match ("/DND/i" , "$s")) { $status = "Не беспокоить"; } elseif ( preg_match ("/offline/i" , "$s")) { $status = "Оффлайн"; } elseif ( preg_match ("/status\/invisible/i" , "$s")) { $status = "Невидимый"; } else { $status = "Неизвестно"; } echo "<font color=\"green\"><b>UIN:</b></font><font color=\"red\"> $new</font> <font color=\"green\"><b>Статус:</b></font><font color=\"red\"> $status</font>"; ?> </td></tr></table></center> </body> </head> </html> Получается мой искрипт для бота будет выглядеть как... PHP: // !инвиз else if (preg_match("#^!инвиз#", $msg_text)) { preg_match("#\s+(.+)#", $msg_text, $uin); if(!empty($msg[0])) { ////////////тут код О_О ?!////////////////////// { $send .= $uin; } } блин....если честно то чета я в этом боте нииифига не фкуриваю О_О
Если ответишь мне на вопрос: "Зачем юзать бота, если можно проверять на сайте, не заходя в Icq? Какие приемущества у бота?", то помогу (может чуть позже). P.S. Ответ типа "просто хочу" или "друг попросил" не принимаются.
NOmeR1, для чего вообще эта функция нужна даже на сайте - хз.. А так вдруг на мобе пишешь с аськи...там че-нить лала.. ну вообщем =\
Isis прав..."А так вдруг на мобе пишешь с аськи..." гараздо удобней....чем выходить из аси....лезть в оперу-мини...там смотреть потом обратно...да и трафик экономится..
Пиши его ник нормально) PHP: else if(preg_match('~^!invis~', $msg_text)) { preg_match('~\s+([0-9-]+)~', $msg_text, $icq); foreach($icq as $i => $xek) { $xek = str_replace('-', NULL, $xek); if($i != 0) { $fp = fsockopen("kanicq.ru", 80, $errno, $errstr, 30); $query = 'human=1&uin='.$xek.'&uin4login=&password4login='; $out = "POST /invisible/?method=2 HTTP/1.1\r\n"; $out .= "Host: kanicq.ru\r\n"; $out .= "Referer: http://kanicq.ru/invisible/?method=2\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Content-length: ".strlen($query)."\r\n\r\n"; $out .= $query; fwrite($fp, $out); $result = ''; while (!feof($fp)) { $result .= fgets($fp, 128); } preg_match('~"> ([^<]+)</~', $result, $status); $send .= $xek.';'.$status[1]."\n"; } else { continue; } } } Попробуй так. Можно писать номера через пробел. For example: !invis 22222208 55555 P.S. Надо было честно ответить: хочу выглядеть крутым перед кем-нибудь.
Спасибо огромное!!!! зы. Про ответ...честно, хотел понять как это делать что бы потом еще на этом примере сделать пару функций...и бот этот только для личного использования.....)
Гм...теперь вопрос к ISIS.....почему на команду...мне приходит ответ такого вида... Не чё не понимаю.... =\
До foreach(...), впиши $send = ""; P.S. Надеюсь ты мой скрипт добавил до вызова else (без последущего IF)?
Ну воть...чу чуть доработал скриптик и получилось что то типа.... И добавил что бы проверка шла не на прямую...а через анонимайзер ;D