Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: str_replace [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
Prizma
Отправлено: 07 Января, 2016 - 17:35:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




DemoN1810 пишет:
это для цб только одну колонку отвести, а новости, а анекдоты, а википедия вконце концов?

ну во первых не колонку а ячейку, другой вопрос если ты хранишь историю в базе тогда уже таблицу.

я бы на твоем месте отсеивал например не строковые значение или те для которых есть функция используя ассоциативный массив, примерно так:
PHP:
скопировать код в буфер обмена
  1. // класс который выводит сообщение или выполняет функцию,
  2. // если сообщение соответствует определенному значениею
  3. class message
  4. {
  5.     // массив, где ключом является сообщение,
  6.     // а значением название функции
  7.     private $keys = [
  8.         '%WIKI%'=>'wiki',
  9.         '%NEWS%'=>'news',
  10.         '%OTHER%'=>'other'
  11.     ];
  12.  
  13.     // конструктор класса
  14.     // $message string - отправленное сообщение
  15.     public function __construct($message)
  16.     {
  17.         // проверяем является ли сообщение "ключевым"
  18.         // (т.е. проверяем есть ли функция для данного сообщения)
  19.         if(isset($this->keys[$message])) {
  20.             // если есть тогда записываем название функции в переменную $func
  21.             $func = $this->keys[$message];
  22.             // вызываем функцию по названию
  23.             // (имя вызываемой функции содержится в переменной $func)
  24.             $this->$func();
  25.         }else{
  26.             // если совпадения в массиве $keys не найдено,
  27.             // тогда выводим сообщение используя функцию notDetected,
  28.             // или можно просто сделать echo $message
  29.             $this->notDetected($message);
  30.         }
  31.     }
  32.  
  33.     // здесь надо реализовать метод для %WIKI%
  34.     private function wiki()
  35.     {
  36.         echo 'wiki';
  37.     }
  38.  
  39.     // здесь надо реализовать метод для %NEWS%
  40.     private function news()
  41.     {
  42.         echo 'news';
  43.     }
  44.  
  45.     // здесь надо реализовать метод для %OTHER%
  46.     private function other()
  47.     {
  48.         echo 'other';
  49.     }
  50.  
  51.     // здесь надо реализовать вывод написанного сообщения в чат
  52.     private function notDetected($string)
  53.     {
  54.         echo $string;
  55.     }
  56. }
  57.  
  58. // сообщение которое пришло из чата (можешь менятб на свое)
  59. $mess = '%WIKI%';
  60.  
  61. // создаем экземпляр класса
  62. // класс обрабатывает сообщение $mess и проделывает требуемые действия
  63. new message($mess);

(Отредактировано автором: 08 Января, 2016 - 22:41:04)

 
My status
 Top
DemoN1810
Отправлено: 08 Января, 2016 - 09:23:52
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Prizma пишет:
я бы на твоем месте отсеивал например не строковые значение или те для которых есть функция используя ассоциативный массив
как-то всё слишком запутанно, это всё-таки раздел для новичков, никак попроще нельзя?
 
 Top
Prizma
Отправлено: 08 Января, 2016 - 22:24:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




DemoN1810 пишет:
как-то всё слишком запутанно, это всё-таки раздел для новичков, никак попроще нельзя?

Для каждой задачи, есть много вариантов решения, я тебе подсказал, один из наиболее логичных и правильных(по моему мнению) из поставленной задачи, если запустишь код, поковыряешь, разберешься с ним, затем прочитаешь мануал про то, чего не понимаешь, думаю всё будет легко и просто.
(Добавление)
Сейчас добавлю комментарии в предыдущий пост, чтобы тебе было проще и понятней
 
My status
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB