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
Форумы портала PHP.SU :: Версия для печати :: нужна помощь с strtr
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » нужна помощь с strtr

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

1. romario0403 - 31 Июля, 2011 - 15:31:39 - перейти к сообщению
здравствуйте! помогите пожалуйста модернизировать функцию, которая заменяе 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, но ничего не получилось Огорчение
2. OrmaJever - 31 Июля, 2011 - 15:36:58 - перейти к сообщению
romario0403 пишет:
я пыталс

как? Однако покажите как вы пытались а мы поможем.
3. romario0403 - 31 Июля, 2011 - 15:45:26 - перейти к сообщению
как-то так|:

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. }
4. OrmaJever - 31 Июля, 2011 - 15:50:07 - перейти к сообщению
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. }
5. romario0403 - 31 Июля, 2011 - 15:56:24 - перейти к сообщению
спасибо огромное!очень сильно помог!!! Прыгаю до потолка

 

Powered by ExBB FM 1.0 RC1