Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ICQ-бот
 
 автор: SnooPI   (11.04.2007 в 12:39)   письмо автору
 
 

Здравствуйте....
Вообщем я делаю icq бота на классе WebIcqPro
И вот не знаю как сделать..
Вот пример отправки сообщения..

         switch (strtolower($msg['message'])) {
            case '.news':
                    $icq->sendMessage(4445262, "сообщение");
                break;
                        default:
                                                $icq->sendMessage($msg['from'], "Сообщение стандарт");
                        break;
        }

Ну вот это пример...
Здесь значит если кто-нибудь напишет боту сообщение любое, то ему напишет "Сообщение стандарт" , а если он напишет .news то ему просто напишет "сообщение"

так вот в чем проблема...
Мне надо сделать так, чтобы если пишут команду ".news $text" (без кавычек, разделены пробелом) , то тогда текст $text должен послать сообщение на номер 123123321
Вообщем вы написали боту команду .news Это новость которая будет послана номеру 1231233221
И после этого надо чтобы этот текст(после команды .news) отправился на задданный номер..
Но только я не знаю как задать командутекста...как она определиться....

Помогите пожалуйста..
Спасибо

   
 
 автор: sms-send   (11.04.2007 в 21:06)   письмо автору
 
   для: SnooPI   (11.04.2007 в 12:39)
 

>Но только я не знаю как задать командутекста...как она определиться....
Что значит задать команду текста?


--------
P.S. тоже пользуюсь этим классом :)

   
 
 автор: Unkind   (11.04.2007 в 22:06)   письмо автору
 
   для: SnooPI   (11.04.2007 в 12:39)
 

И после этого надо чтобы этот текст(после команды .news) отправился на задданный номер..
А номер задаваться будет в скрипте или в сообщении от админа боту?


<?php
//Какой-то код

$cmd preg_match("/^([^\s]+)/"$msg['message'], $matches) ? strtolower($matches[1]) : false;

switch(
$cmd)

case 
'.news':
$icq->sendMessage(4445262substr($msg['message'], strpos($msg['message'], ' ') + 1)); 
break; 

default: 
$icq->sendMessage($msg['from'], "Сообщение стандарт"); 
break; 
}

//Какой-то код
?>

   
 
 автор: SnooPI   (11.04.2007 в 23:18)   письмо автору
 
   для: Unkind   (11.04.2007 в 22:06)
 

Чего то не работает.....
Вот смотрите..Я хочу чтобы:
Если боту написать фразу .news Это новость , то надо чтобы фраза после команды .news отправилась на заданный номер...
Вроде кажется легко, а не получается

   
 
 автор: Unkind   (12.04.2007 в 18:37)   письмо автору
 
   для: SnooPI   (11.04.2007 в 23:18)
 

Чего то не работает.....
Что не работает?

   
 
 автор: SportSoft   (12.04.2007 в 13:29)   письмо автору
 
   для: Unkind   (11.04.2007 в 22:06)
 

A kak prokonnektitsya serverom icq?

   
 
 автор: KPETuH   (12.04.2007 в 13:57)   письмо автору
 
   для: SnooPI   (11.04.2007 в 12:39)
 

что нить типа этого

<?php
  $str
=".news Это новость" ;
  if (
strpos($str,"news")>0)
  {
    
preg_match("/.news\s(.*)/",$str,$info);
    echo 
$str=$info[1];
  }
  else
  {
      echo 
$str;
  }
?>

   
 
 автор: SnooPI   (12.04.2007 в 17:31)   письмо автору
 
   для: KPETuH   (12.04.2007 в 13:57)
 

KPETuH, спасибо...
Только проблема.........если написать например в 2 строки , то выводит первую только
Например пишу

.news Это новсть
2строка лалала

В этом случае выведет только 1 строку :(
Врроде в прег маче нет переноса или как там сделать...
Точка ведь не учитывает его

   
 
 автор: SnooPI   (12.04.2007 в 19:38)   письмо автору
 
   для: SnooPI   (12.04.2007 в 17:31)
 

Unkind , я не знаю
Но вот код Кретина норм получился, но почему то только 1 стрроку выводит..поомоги с этим пожалуйста

   
 
 автор: KPETuH   (13.04.2007 в 06:52)   письмо автору
 
   для: SnooPI   (12.04.2007 в 17:31)
 

вопрос откуда берется многострочная информация для отсылки по аське? из поля ввода или из файла?

   
 
 автор: SnooPI   (13.04.2007 в 07:06)   письмо автору
 
   для: KPETuH   (13.04.2007 в 06:52)
 

Ну в аське ведь ты можешь писать на нескольких строках =) (Клавишей ctrl+enter)
Из поля ввода

   
 
 автор: KPETuH   (13.04.2007 в 07:54)   письмо автору
 
   для: SnooPI   (13.04.2007 в 07:06)
 

я считал что вы отправляете из скрипта информацию на аську так вот в скрипте откуда информация берется?

   
 
 автор: Trianon   (13.04.2007 в 10:00)   письмо автору
 
   для: KPETuH   (13.04.2007 в 07:54)
 

Вероятно, в $str может находиться несколько строк.

Здесь требуется prce-модификатор MULTILINE, иначе точка не будет отвечать символам конца строк.

preg_match("/.news\s(.*)/m",$str,$info); 

   
 
 автор: SnooPI   (13.04.2007 в 15:56)   письмо автору
 
   для: Trianon   (13.04.2007 в 10:00)
 

Не получается :(
Вот код примерный

<?
$str 
".news Новость
2 строка
эээх, а эта 3 строка"
;
if(
strpos($str'news')) {
    
preg_match("/.news\s(.*)/m"$str$msg);
    echo 
$msg[1];
}
?>


Выводит только первую строку т.е. слово "Новость"
А надо чтобы все строки выводил :(

   
 
 автор: Trianon   (13.04.2007 в 16:07)   письмо автору
 
   для: SnooPI   (13.04.2007 в 15:56)
 

ок.
Напишите так:
if(strpos($str, 'news')) {
preg_match("/.news\s([\d\D]*)/", $str, $msg);
echo $msg[1];

   
 
 автор: SnooPI   (13.04.2007 в 16:14)   письмо автору
 
   для: Trianon   (13.04.2007 в 16:07)
 

ЭЭх ужас =)
Напсиал так:

<?
$str 
".news Новость
2 строка
еще строка"
;
if(
strpos($str'news')) {
preg_match("/.news\s([\d\D]*)/"$str$msg);
echo 
$msg[1];
}
?>


Теперь выводит все, но в 1 одной строке, переносов не учитывает

Новость 2 строка еще строка

   
 
 автор: Trianon   (13.04.2007 в 16:20)   письмо автору
 
   для: SnooPI   (13.04.2007 в 16:14)
 

Вы не туда смОтрите.
СмотрИте исх текст HTML-кода сгенерированной страницы. Все переносы там есть.

   
 
 автор: SnooPI   (13.04.2007 в 16:21)   письмо автору
 
   для: Trianon   (13.04.2007 в 16:20)
 

Точно, а как так получается?:)

   
 
 автор: Trianon   (13.04.2007 в 16:54)   письмо автору
 
   для: SnooPI   (13.04.2007 в 16:21)
 

переносы строк в HTML-коде трактуются, как пробелы. Всю жизнь.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования