Здравствуйте дорогие форумчанины. Прошу вас помочь с написание плагина, который показывает гороскоп. Есть готовое решение только оно не работает. Я предлагаю брать гороскоп с mail.ru но там каждый знак зодиака подскатавлен под номером. Получается надо изменять на автомате, например козерогу присваивать значение 10, и подстанавливать это значение в ссылку. это готовое не доделоное решение
php code beautifier PHP: <?php function goro( $param ) { if( empty($param) ) { SteelBot::CmdHelp( 'goro' ); } else { $param = iconv( 'windows-1251', 'UTF-8', $param ); switch ( $param ) { case "козерог": case "овен": case "рак": case "весы": case "водолей": case "телец": case "лев": case "скорпион": case "рыбы": case "близнецы": case "дева": case "стрелец": $arZod = array( 'Козерог' => 10, 'Овен' => 1, 'дева' => '9' ); $buf = file_get_contents( "http://horo.mail.ru/prediction.html?sign=" . $arZod[$param] ); $buf = iconv( "WINDOWS-1251", "UTF-8", $buf ); $a = explode( "table", $buf ); $a[9] = strip_tags( $a[9] ); $a[11] = strip_tags( $a[11] ); $chislo = strpos( $a[9], ">" ); $a[9] = substr( $a[9], $chislo + 1 ); $chislo = strpos( $a[11], ">" ); $a[11] = substr( $a[11], $chislo + 1 ); $chislo = strpos( $a[9], "для" ); $part1 = substr( $a[9], 0, $chislo + 6 ); $part2 = substr( $a[9], $chislo + 6 ); $chislo = strpos( $a[11], "для" ); $part3 = substr( $a[11], 0, $chislo + 6 ); $part4 = substr( $a[11], $chislo + 6 ); $param = iconv( "WINDOWS-1251", "UTF-8", $param ); SteelBot::Msg( $part1 . " " . $param . " " . $part2 . " " . " " . $part3 . " " . $param . " " . $part4 ); break; default: SteelBot::Msg( 'Неправильно введен знак зодиака. Существующие знаки зодиака: козерог, овен, рак, весы, водолей, телец, лев, скорпион, рыбы, близнецы, дева, стрелец' ); } } } SteelBot::RegisterCmd( "гороскоп1", "goro", 1, "гороскоп (знак зодиака) - гороскоп" ); ?>
у меня нету класса стилбот, писал на коленке PHP: <?php function goro( $param ) { if( empty($param) ) { SteelBot::CmdHelp( 'goro' ); } else { $param_id = 0; /*В param_id вписать нужное значение*/ switch ( $param ) { case "козерог": $param_id = 10; case "овен": $param_id = 10; case "рак": $param_id = 10; case "весы": $param_id = 10; case "водолей": $param_id = 10; case "телец": $param_id = 10; case "лев": $param_id = 10; case "скорпион": $param_id = 10; case "рыбы": $param_id = 10; case "близнецы": $param_id = 10; case "дева": $param_id = 10; case "стрелец": $param_id = 10; $buf = file_get_contents( "http://horo.mail.ru/prediction.html?sign=" . $param_id ); preg_match('/(?<=tm_today">)(?:\s*)?[\s\S]*?(?=<script)/', $buf, $res); $buf = strip_tags($res[0]); SteelBot::Msg( $buf ); break; default: SteelBot::Msg( 'Неправильно введен знак зодиака. Существующие знаки зодиака: козерог, овен, рак, весы, водолей, телец, лев, скорпион, рыбы, близнецы, дева, стрелец' ); } } } SteelBot::RegisterCmd( "гороскоп1", "goro", 1, "гороскоп (знак зодиака) - гороскоп" ); ?>
Присылает ответ, тока что то с оригиналом его не сравнить, вот что присылает робот на водолея: а вот с маила
правь регулярку, я бота твоего в глаза не видел, если хочеш готовое решение прошу в раздел покупки и продажи. ты param_id правлеьно выставил?
По такому же принцыпу попытался сделать плагин для погоды, с gismeteo.ru вот код: PHP: <?php function pogoda( $param ) { if( empty($param) ) { SteelBot::CmdHelp( 'pogoda' ); } else { $param_id = 0; /*В param_id вписать нужное значение*/ switch ( $param ) { case "москва": $param_id = 4368; case "овен": $param_id = 10; case "рак": $param_id = 10; case "весы": $param_id = 10; case "водолей": $param_id = 10; case "телец": $param_id = 10; case "лев": $param_id = 10; case "скорпион": $param_id = 10; case "рыбы": $param_id = 10; case "близнецы": $param_id = 10; case "дева": $param_id = 10; case "стрелец": $param_id = 10; $buf = file_get_contents( "http://gismeteo.ru/city/daily/" . $param_id ); preg_match('/(?<=tm_today">)(?:\s*)?[\s\S]*?(?=<script)/', $buf, $res); $buf = strip_tags($res[0]); SteelBot::Msg( $buf ); break; default: SteelBot::Msg( 'Вы ввели город, которого нет в базе.' ); } } } SteelBot::RegisterCmd( "погода", "pogoda", 1, "погода (город)- узнать погоду в городе" ); ?> отсылаю погода москва, и мне ничего в ответ не приходит... помогите Исправил, извините
подсказка небольшая - код с новой строки каждая строчка чтобы была - достаточно вовремя нажимать ENTER при публикации, а не просто тупо копипастить. Уважай других плз