Написал функцию сонника. переменная $string? команду сами придумаете, код: PHP: $string = convert_cyr_string($string,"w","k");// Убираем проблему с кодировкой $fp = fsockopen('www.marry.ru',80); // Коннект // формируем запрос $query = 'rule=exact&what='.urlencode($string); $headers = array( 'POST /secret/sonnik.php HTTP/1.0', 'Host: www.marry.ru', 'Referer: http://www.marry.ru/secret/sonnik.php', 'Content-Type: application/x-www-form-urlencoded', 'Content-Length: '.strlen($query), "\r\n" ); fputs($fp, implode("\r\n", $headers).$query);// Post запрос $text = ""; // объявляем переменную while(!feof($fp)) { $text.= fgets($fp); } $text = convert_cyr_string($text,"k","w");// Убираем проблему с кодировкой // Ищем ID к слову $regex = '/wid=(.*)"/';// правило сортировки preg_match_all($regex, $text, $out); //сортируем $id_link = $out[1][0]; // присваиваем ID переменной fclose($fp); ######################################################################## $fp = fsockopen('www.marry.ru', 80); // Коннект $headers = array( "GET /secret/sonnik.php?wid=".$id_link." HTTP/1.0", 'Host: www.marry.ru', "\r\n" ); fputs($fp,implode("\r\n", $headers));// GET запрос $text = ""; while(!feof($fp)) { $text.= fgets($fp); } $text = convert_cyr_string($text,"k","w");// Убираем проблему с кодировкой $regex = '/<\/a><\/b><p>(.*)<p><hr size=1>/';// правило сортировки preg_match_all($regex, $text, $out); //сортируем fclose($fp); $son = $out[1][0]; $son = strip_tags($son); if($son=="") { $son = "Нет описания к слову ".$_POST['n']; } return $son;
Хм.. а бот ещё работает? незапускается на денвере и вдске, ошибок вообще никаких непишет, как искать где ошибка.. // решено, всё отлично работает, глюк был в пшп, пересобрал и заработало, ну а денвер он на то и денвер..
Почему-то он выключается сам иногда, а иногда сутки может работать! И сделайте чтобы он писал когда слишком большое сообщение, а то тупо молчком игнорирует! И я так и не понял как его хоть раз в сутки перезапускать с помошью Крона!
PHP: $text=file_get_contents('http://путь к файлу'); if (!empty($text)){ return $text;} else {return 'Нет связи';}
Вопрос не правильно поставил: есть файл, в нем текст вида... текст1 ---- текст2 ---- текст3 Нужно делать вывод рандомно... то есть --- это разделитили между текстами.... ------------------------------------------ Если было бы так: текст1 текст2 текст3 То можно было просто рендомно строчки вытаскивать.... а тут разделитель, как быть? + текст не в одну строчку... т.е. текст1 --- текст2 текст2.1 текст2.2 --- текст3 вот в таком виде...
Code: <?php $f = 'filename.txt'; $a = preg_split('~[\r\n]{1,2}---[\r\n]{1,2}~', file_get_contents($f)); echo $a[rand(0,sizeof($a)-1)]; ?>
А не подскажите как организовать анекдоты с сайта или гороскоп по знаку зодиака (тоесть человек пишет !гороскоп "стрелец")
помогите переписать под этот YourICQ бота PHP: <?php class bashorg { static $regexp = '~<div class="q">[\s|\S]*?<\/div>\s{0,}<div>([\s|\S]*?)<\/div>~', $buffer = array(); static function SendQuote() { $quote = array_pop(self::$buffer); SteelBot::Msg($quote); if ( count(self::$buffer) < 1 ) { self::RefreshDB(); } } static function RefreshDB() { $result = ''; if ($sock = fsockopen("bash.org.ru", 80) ) { $d = fputs ($sock, "GET http://bash.org.ru/random HTTP/1.0\n"); fputs ($sock, "Connection: Keep-Alive\n". "User-Agent: SteelBot/1.0 (http://steelbot.net)\n". "Host: bash.org.ru\n". "Pragma: no-cache\n". "Cache-Control: no-cache\n". "Connection: close\n\n" ); while ( !feof($sock) ) { $result .= fgets($sock, 1024); } preg_match_all(self::$regexp, $result, $matches); foreach($matches[1] as $quot) { $quot = html_entity_decode($quot); $quot= str_replace( array("<br>", "<br />"), "\n", $quot); self::$buffer [] = iconv('WINDOWS-1251', 'UTF-8', $quot);; } fclose($sock); echo "[bashorg] quotes buffer has been refreshed (".count(self::$buffer)." quotes added).\n"; } else { echo "[bashorg] ERROR: can't establish connection to bash.org.ru\n"; } } } SteelBot::RegisterCmd('bash', array('bashorg', 'SendQuote'), 1, 'bash - чтение цитат с bash.org.ru'); bashorg::RefreshDB();
NOmeR1: Окей, а если в коде подправить и бот сам себе будет каждые, скажем, 5 мин. писать? P.s. С Нагрузкой всё понятно, но.. куда деваться?
Вот достал скрипт погоды... Но не знаю что указывать переменной.. подскажите плиз. PHP: <? $towns=array( 'Абакан'=>29862,'Агинское'=>29676,'Адлер'=>37171,'Алапаевск'=>28248,'Алдан'=>31004, 'АлександровСад'=>34391,'Александровск-Сах.'=>32061,'Александровское'=>23955, 'Амдерма'=>23022,'Анадырь'=>25563,'Анапа'=>37001,'Ангарск'=>30715,'Арзамас'=>27653, 'Армавир'=>37031,'Архангельск'=>22550,'Астрахань'=>34880,'Ачинск'=>29467, 'Байкальск'=>30818,'Балашов'=>34152,'Балтийск'=>26701,'Барабинск'=>29612, 'Баргузин'=>30636,'Баренцбург'=>20107,'Белгород'=>34214,'Белозерск'=>22939, 'Беломорск'=>22551,'Белорецк'=>28831,'Березники'=>28028,'Березово'=>23631, 'Бийск'=>29939,'Биробиджан'=>31713,'Бирск'=>28621,'Благовещенск'=>31510, 'Богучар'=>34336,'Бологое'=>26298,'Большеречье'=>28593,'Борзя'=>30965,'Брянск'=>26898, 'Бугульма'=>28711,'Бугуруслан'=>28806,'Буденовск'=>37061,'Бузулук'=>28909, 'Буйнакск'=>37471,'БухтаПровидения'=>25594,'Верещагино'=>28216, 'ВерхнийБаскунчак'=>34579,'Верхотурье'=>28144,'Верхоянск'=>24266,'Вилюйск'=>24641, 'Витим'=>30054,'Владивосток'=>31960,'Владикавказ'=>37228,'Владимир'=>27532, 'Волгоград'=>34560,'Вологда'=>27037,'Воркута'=>23226,'Воронеж'=>34123,'Вуктыл'=>23612, 'Выборг'=>22892,'Вытегра'=>22837,'ВышнийВолочок'=>26393,'Вязьма'=>26695,'Гагарин'=>27507, 'Гдов'=>26157,'Геленжик'=>37004,'Глазов'=>28214,'Горин'=>31489,'Горно-Алтайск'=>36052, 'ГорячийКлюч'=>37014,'Губаха'=>28134,'Гусь-Хрустальный'=>27539,'Дальнереченск'=>31873, 'ДвинскойБерезник'=>22762,'Дербент'=>37470,'Дивное'=>34858,'Дмитров'=>27419,'Дно'=>26268, 'Долинск'=>32133,'Дудинка'=>23074,'Екатеринбург'=>28440,'Елабуга'=>28506, 'Елатьма'=>27648,'Елец'=>27928,'Ельня'=>26783,'Енисейск'=>29263,'Ербогачен'=>24817, 'ЕрофейПавлович'=>30683,'Ершов'=>34186,'Ефремов'=>27921,'Забайкальск'=>30968, 'Звериноголовское'=>28756,'Зея'=>31300,'Зима'=>30603,'Златоуст'=>28630, 'Змеиногорск'=>36038,'Зырянка'=>25400,'Иваново'=>27347,'Ивдель'=>23921,'Игарка'=>23274, 'Игнашино'=>30686,'Ижевск'=>28411,'Иркутск'=>30791,'Истра'=>27511,'Ича'=>32411, 'Ишим'=>27485,'Йошкар-Ола'=>28573,'Казань'=>27595,'Калач'=>34247,'Калевала'=>22408, 'Калининград'=>26702,'Калуга'=>27703,'Каменск-Уральский'=>28449,'Камень-наОби'=>29822, 'Камышин'=>34363,'Кандалакша'=>22217,'Канск'=>29581,'Каргополь'=>22845,'Карталы'=>28941, 'Кашин'=>27316,'Кемерово'=>29645,'Киренск'=>30230,'Киров'=>27199,'Кирсанов'=>27957, 'Кисловодск'=>37123,'Клин'=>27417,'Когалым'=>23748,'Коломна'=>27625,'Колпашево'=>29231, 'Комсомольск-на-Амуре'=>31561,'Кондопога'=>22727,'Корсаков'=>32158,'Кострома'=>27333, 'Котлас'=>22887,'Кош-Агач'=>36259,'Краснодар'=>34929,'Красноозерск'=>29813, 'Красноселькуп'=>23465,'Красноуфимск'=>28434,'Красноярск'=>29570,'Кропоткин'=>34936, 'Кудымкар'=>28116,'Кунгур'=>36024,'Курган'=>28661,'Курильск'=>32174,'Курск'=>34009, 'Куртамыш'=>28659,'Кызыл'=>36096,'Ленск'=>24923,'Липецк'=>27930,'Ловозеро'=>22127, 'ЛодейноеПоле'=>22913,'Лысьва'=>28234,'Магадан'=>25913,'Магнитогорск'=>28838, 'Майкоп'=>37021,'Макаров'=>32116,'Макушино'=>28666,'Малоярославец'=>27606,'Мама'=>30157, 'Мариинск'=>29551,'Махачкала'=>37472,'Медвежьегорск'=>22721,'Мезень'=>22471, 'Миллерово'=>34438,'МинеральныеВоды'=>37054,'Мирный'=>24726,'Мичуринск'=>27935, 'Могоча'=>30673,'Можайск'=>27509,'Можга'=>28409,'Моздок'=>37145,'Мончегорск'=>22212, 'Морозовск'=>34545,'Моршанск'=>27848,'Мурманск'=>22113,'Мценск'=>27817, 'МысТерпения'=>32099,'МысШмидта'=>25173,'Н.Новгород'=>27459,'Надым'=>23445, 'Нальчик'=>37212,'Наро-Фоминск'=>27611,'Нарьян-Мар'=>23205,'Находка'=>31970, 'Невельск'=>32145,'Невинномысск'=>37036,'Нерчинск'=>30768,'Нефтеюганск'=>23848, 'Нижнеангарск'=>30433,'Нижневартовск'=>23471,'Нижнеудинск'=>29698,'НижнийТагил'=>28240, 'Николаевск-на-Амуре'=>31369,'Новгород'=>26179,'Новокузнецк'=>29846,'Новосибирск'=>29634, 'НовыйОскол'=>34213,'НовыйУренгой'=>23358,'Ноглики'=>32053,'Норильск'=>23078, 'Облучье'=>31702,'Обоянь'=>34109,'Оймякон'=>24688,'Октябрьское'=>23734, 'Олекминск'=>24944,'Оленек'=>24125,'Омск'=>28698,'Онега'=>22641,'Орел'=>27906, 'Оренбург'=>35121,'Оса'=>28324,'Осташков'=>26389,'ОстровБеринга'=>32618, 'ОстровВизе'=>20069,'ОстровВрангеля'=>21982,'ОстровДиксон'=>20674, 'ОстровКотельный'=>21432,'Охотск'=>31088,'П.-Камчатский'=>32594,'ПавловскийПосад'=>27523, 'Партизанск'=>31987,'Певек'=>25051,'Пенза'=>27962,'Пермь'=>28224,'Петрозаводск'=>22820, 'Печора'=>23418,'Пинега'=>22563,'Поронайск'=>32098,'Поярково'=>31587, 'Преображение'=>31989,'Приаргунск'=>30975,'Приморско-Ахтарск'=>34824,'Прохладный'=>37144, 'Псков'=>26258,'Пушкинскиегоры'=>26359,'Радужный'=>23758,'Ребриха'=>29923, 'Рославль'=>26882,'Ростов-на-Дону'=>34730,'Ростов'=>27329,'Рубцовск'=>36034, 'Рыльск'=>33166,'Ряжск'=>27835,'Рязань'=>27730,'Салехард'=>23330,'Самара'=>28807, 'Санкт-Петербург'=>26063,'Саранск'=>27760,'Саратов'=>34172,'Сасово'=>27745, 'Северо-Енисейск'=>23986,'Северо-Курильск'=>32215,'Северобайкальск'=>30435, 'Северодвинск'=>22546,'Сеймчан'=>25703,'Семячики'=>32509,'Серафимович'=>34357, 'Серов'=>28044,'Серпухов'=>27618,'Сковородино'=>30692,'Славгород'=>29915, 'Сладково'=>28587,'Смоленск'=>26781,'Соболево'=>32477,'СоветскаяГавань'=>31770, 'Соловки'=>22429,'Сортавала'=>22802,'Сосьва'=>23625,'Средне-Колымск'=>25206, 'СреднийВасюган'=>29111,'Сретенск'=>30777,'Ставрополь'=>34949,'СтаницаКаневская'=>34825, 'СтараяРусса'=>26275,'СтарыйОскол'=>34116,'Стерлитамак'=>28825,'Сузун'=>29823, 'Сургут'=>23849,'Сусуман'=>24790,'Сухиничи'=>27707,'Сызрань'=>27983,'Сыктывкар'=>23804, 'Таганрог'=>34720,'Тайга'=>29541,'Тайшет'=>29594,'Тамбов'=>27947,'ТаркоСале'=>23552, 'Татарск'=>29605,'Таштагол'=>29954,'Тверь'=>27402,'Териберка'=>22028,'Терней'=>31909, 'Тикси'=>21824,'Тихвин'=>26094,'Тихорецк'=>34838,'Тобольск'=>28275,'Токма'=>30127, 'Тольятти'=>27890,'Томпа'=>30439,'Томск'=>29430,'Тотьма'=>27051,'Троицк'=>28748, 'ТроицкоПечорск'=>23711,'Туапсе'=>37018,'Тула'=>27719,'Тулун'=>30504,'Тура'=>24507, 'Туринск'=>28255,'Туруханск'=>23472,'Тутончаны'=>23589,'Тымовское'=>32017,'Тында'=>30499, 'Тюмень'=>28367,'Углегорск'=>32088,'Улан-Удэ'=>30823,'Ульяновск'=>27786,'Уральск'=>35108, 'Урюпинск'=>34240,'Усть-Баргузин'=>30635,'Усть-Ишим'=>28382,'Усть-Калманка'=>36044, 'Усть-Камчатск'=>32408,'Усть-Кулом'=>23803,'Усть-Ордынский'=>30713,'Уфа'=>28722, 'Ухта'=>23606,'Уэлен'=>25399,'Хабаровск'=>31735,'Ханты-Мансийск'=>23933, 'Хасавьюрт'=>37248,'Хатанга'=>20891,'Холмогоры'=>22559,'Холмск'=>32128, 'Чайковский'=>28413,'Чара'=>30372,'Чебоксары'=>27581,'Челюскин'=>20292, 'Челябинск'=>28645,'Черемхово'=>30617,'Череповец'=>27113,'Черкесск'=>37047, 'Чермоз'=>28128,'ЧерныйЯр'=>34578,'Чернышевск'=>30766,'Черняховск'=>26711, 'Черский'=>25123,'Черусти'=>27538,'Чита'=>30758,'Чокурдах'=>21946,'Чулым'=>29625, 'Шадринск'=>28552,'Шарья'=>27271,'Шахты'=>34635,'Шелагонцы'=>24329 ); $xxx = file_get_contents('http://meteo.ru/weather/index.php?id='.$towns['Таганрог'].'&townlist=1'); $a = '<[^>]+>'; $b = '[^<]*'; $c = '\s*'; $d = '[^<]+'; $a1= "$c$a$c"; $a2= "$c$a$b$a$c"; $a3= "$c$a$b$a$b$a$c"; $a4= "$c$a$b$a$b$a$b$a$c"; $a5= "$c$a$b$a$b$a$b$a$b$a$c"; $a7= "$c$a$b$a$b$a$b$a$b$a$b$a$b$a$c"; if(preg_match("/>($d )$a4($d)$a4($d)$a2($d)$a2$b$a1($d)(?:$a5|$a7)($d)$ a1($d)$a3($d)$a1($d)</i", $xxx, $m)) { echo $m[1].$m[2].$m[3].$m[4].$m[5].'<br>'.$m[6].$m[7].$m[8].$m[9]; } else { echo 'Sorry, cant get information.'; } ?>
Ну есть несколько людей которые тестят...они говорят что нафиг не надо "!" Поставил переменную $towns и бот молчит на запрос Отправляю запрост типа: !погода "Пермь" И полный 0
Я в PHP не очень силён, но попробовал написать свой скрипт под бота... Скажите плиз что не так? Скрипт привязывается к гороскопам horo.mail.ru PHP: $znak=array( 'Овен'=>1,'Телец'=>2,'Близнецы'=>3,'Рак'=>4,'Лев'=>5,'Дева'=>6, 'Весы'=>7,'Скорпион'=>8,'Стрелец'=>9,'Козерог'=>10,'Водолей'=>11,'Рыбы'=>12 ); $fp = fsockopen("horo.mail.ru", 80, $errno, $errstr, 30); $query = 'prediction.html?sign='.$znak.'&time=1'; $out = "POST /prediction.html?sign=1&time=1 HTTP/1.1\r\n"; $out .= "Host: horo.mail.ru\r\n"; $out .= "Referer: http://horo.mail.ru/prediction.html?sign=1&time=1\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Content-length: ".strlen($query)."\r\n\r\n"; $out .= $query; $text = ""; // объявляем переменную while(!feof($fp)) { $text.= fgets($fp); } $text = convert_cyr_string($text,"k","w");// Убираем проблему с кодировкой // Ищем ID к слову $regex = '/wid=(.*)"/';// правило сортировки preg_match_all($regex, $text, $out); //сортируем fclose($fp); ################################################## ###################### $fp = fsockopen('www.horo.mail.ru', 80); // Коннект $headers = array( "GET /prediction.html?sign=".$znak."&time=1 HTTP/1.0", 'Host: www.horo.mail.ru', "\r\n" ); fputs($fp,implode("\r\n", $headers));// GET запрос $text = ""; while(!feof($fp)) { $text.= fgets($fp); } $text = convert_cyr_string($text,"k","w");// Убираем проблему с кодировкой $regex = '/<div id="tm_today"><p>(.*)</p><script type="text/javascript">/';// правило сортировки preg_match_all($regex, $text, $out); //сортируем fclose($fp); $gor = $out[1][0]; $gor = strip_tags($son); if($gor=="") { $gor = "Нет описания к слову ".$_POST['n']; } return $gor;