За последние 24 часа нас посетили 17990 программистов и 1600 роботов. Сейчас ищут 962 программиста ...

Замена текст. смайлов на графические.помогите найти ошибку

Тема в разделе "PHP для новичков", создана пользователем eXtreme, 13 мар 2011.

  1. eXtreme

    eXtreme Активный пользователь

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    На моей страничке не работает замена текстового вида смайлов на графические. Вопрос в чем проблема. подскажите пожалуйста. вот код
    PHP:
    1.  
    2. $sml="";
    3. if ($smile="1") { // заменяем текстовые смайлики на графические если разрешено
    4. $sml=str_replace(":-)",$s1,$sml);
    5. $sml=str_replace(":-D",$s2,$sml);
    6. $sml=str_replace(":-P",$s3,$sml);
    7. $sml=str_replace("8-)",$s4,$sml);
    8. $sml=str_replace(":-(",$s5,$sml);
    9. $sml=str_replace(":-O",$s6,$sml);
    10. $sml=str_replace(";-)",$s7,$sml);
    11. $sml=str_replace("8-P",$s8,$sml);
    12. $sml=str_replace("8-/",$s9,$sml);
    13. $sml=str_replace("8-(",$s10,$sml);
    14. $sml=str_replace(":`-(",$s11,$sml);
    15. }
    16. $sml=str_replace("[RB]","<B><font color=red>", $sml);
    17. $sml=str_replace("[/RB]","</font></B>", $sml);
    18. $sml=str_replace("[CITE]","<CITE>", $sml);
    19. $sml=str_replace("[/CITE]","</CITE>", $sml);
    20. $sml=str_replace("&amp;#124;","|", $sml);
    21. $sml=str_replace("&lt;br&gt;","<br>", $sml);
    В настройках стоит
    PHP:
    1. $smile="1";
    Ну и так же для каждого смайла стоит стоит переменная,указывающая путь:
    PHP:
    1. $s1="<img src='smile/smile.gif' border=0>";
    Ах да, если убрать
    PHP:
    1. $sml="";
    страница выдает ошибку : Notice: Undefined variable: sml in ...\www\index.php on line 14 и все равно ничего не работает. Что я упустил? спасибо за внимание.[/code]
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    У меня к примеру:

    PHP:
    1. $sm = str_replace(":)","<img src='/img/smiley/03.gif' border='0'>",$sm);
    обернул в функцию
    PHP:
    1. function smiley(&$sm) { ...
    Работает.

    шозанах у тебя:
    PHP:
    1. $sml="";
    2.  if ($smile="1") {
    эм?
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    if ($smile == "1") {

    не ?
     
  4. eXtreme

    eXtreme Активный пользователь

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    неа. не хочет ((

    PHP:
    1. if ($smile != "0") {
    тоже не робит.

    А такой вопрос, может ли оно не работать из за того что юзаю на локальном сервере? п.с. юзаю примитивный денвер.
    Но в этом я сомневаюсь.
     
  5. eXtreme

    eXtreme Активный пользователь

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    шо за нах у меня незнаю) все делал читая форумы. Ну да функции у меня нет. А можете показать вашу функцию если не жалко. нигде не видел что требуется функция еще.
    PHP:
    1. $sml="";
    2.  
    поставил чтобы не выдавало ошибки.
     
  6. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Твоя переменная не передается. Если ты поставил $sml=""; и у тебя условие if ($smile=="1") { то оно никак не выполнится т.к переменная $sml пустая в данном случае. Тебе уже сказали вместо

    if ($smile="1") {

    напиши правильно

    if ($smile=="1") {
     
  7. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Для примера:

    PHP:
    1. $sm = "1";
    2. $sm = "";
    3. if ($sm == 1) {
    4. echo "Переменная = 1";
    5. }
    Это твой случай, переменная получится пустая и в результате условие не сработало.
    В чем проблема вместо $sm = ""; поставить $sm = 1; и правильно условие записать?

    мб поставить кавычки еще?
     
  8. eXtreme

    eXtreme Активный пользователь

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    все равно не работает. Зачем мне ставить ковычки? когда у меня итак в этой переменной находится "<img src...>"
     
  9. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    пздц. суй полный код сюда
     
  10. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
  11. eXtreme

    eXtreme Активный пользователь

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    ну читал я. поидее должно работать. Все оказалось намного проще. в переменной смл должен содержаться сам текст сообщения. в нем как раз замена и происходит.