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 :: нужна помощь с strtr

 PHP.SU

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


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

> Без описания
romario0403
Отправлено: 31 Июля, 2011 - 15:31:39
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Май 2011  


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




здравствуйте! помогите пожалуйста модернизировать функцию, которая заменяе bbcode в сообщении на html

PHP:
скопировать код в буфер обмена
  1.  
  2. function replase_smile($variables){
  3. $modified = strtr($variables, array(
  4.  
  5. '::ab::'=>'<img src=images/smiles/ab.gif>',
  6. '::ac::'=>'<img src=images/smiles/ac.gif>',
  7. и т.д.
  8. ));
  9. return $modified;
  10. }
  11.  
  12. if(!empty($_POST[message])){
  13. $a = replase_smile(htmlspecialchars($_POST[message]));
  14. $b="$_POST[autor]";
  15. $c=time("H:i:s");
  16. mysql_query("INSERT INTO msg (msg,autor,time) values ('$a','$b','$c')");
  17.  


мне бы хотелось вместо выше представленного массива использовать базу данных:

CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `guest`.`smile` (
  2. `bb` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
  3. `html` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
  4. ) ENGINE = MYISAM ;


я пыталс вместо array использовать mysql_fetch_array, но ничего не получилось Огорчение

(Отредактировано автором: 31 Июля, 2011 - 15:32:59)

 
 Top
OrmaJever
Отправлено: 31 Июля, 2011 - 15:36:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




romario0403 пишет:
я пыталс

как? Однако покажите как вы пытались а мы поможем.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
romario0403
Отправлено: 31 Июля, 2011 - 15:45:26
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Май 2011  


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




как-то так|:

PHP:
скопировать код в буфер обмена
  1. function replase_smile($variables){
  2. $q="SELECT * FROM smile";
  3. $res=mysql_query($q)or die("Аччч2!!");
  4. $modified = strtr($variables, array(
  5. while ($row=mysql_fetch_array($res))
  6. {$row[bb]=>$row[html]}
  7.  
  8. ));
  9. return $modified;
  10. }


и так:

PHP:
скопировать код в буфер обмена
  1. function replase_smile($variables){
  2. $q="SELECT (code, url) FROM smiles";
  3. $res=mysql_query($q)or die("Аччч2!!");
  4. $modified = strtr($variables, $row);
  5. return $modified;
  6. }

(Отредактировано автором: 31 Июля, 2011 - 15:50:31)

 
 Top
OrmaJever
Отправлено: 31 Июля, 2011 - 15:50:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




romario0403 пишет:
PHP:
скопировать код в буфер обмена
  1. while ($row=mysql_fetch_array($res))
  2. {$row[bb]=>$row[html]}
  3.  
  4. ));

Забавно, но в php нет такого синтаксиса Улыбка
PHP:
скопировать код в буфер обмена
  1. function replase_smile($variables){
  2. $q="SELECT * FROM smile";
  3. $res=mysql_query($q)or die("Аччч2!!");
  4. $arr = array();
  5. while ($row=mysql_fetch_array($res))
  6. $arr[$row['bb']] = $row['html'];
  7.  
  8. $modified = strtr($variables, $arr);
  9. return $modified;
  10. }


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
romario0403
Отправлено: 31 Июля, 2011 - 15:56:24
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Май 2011  


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




спасибо огромное!очень сильно помог!!! Прыгаю до потолка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB