За последние 24 часа нас посетил 18151 программист и 1599 роботов. Сейчас ищут 889 программистов ...

Замен слов

Тема в разделе "Прочие вопросы по PHP", создана пользователем GudGuy, 20 апр 2009.

  1. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    И так в текстах необходимо менять слова на слова заключёнyые в тег <a>.
    додумался до такого варианта
    PHP:
    1.  
    2. WHILE($row1=mysql_fetch_array($result1, MYSQL_ASSOC)){
    3.         $val='<'.$row1['link'].'>'.$row1['word'].'</a>';
    4.         $key=trim($row1['word']);
    5.         $zam_ar[$key]=$val;
    6. }
    7. $content=strtr($content, $zam_ar);
    8.  
    Только эта зараз заменяет слова сколько бы раз они не встречались. А это ни есть хорошо=(
    Можно было бы придумать конечно сложный и хитрый алгоритм, но я прям как чувствую что это будет громадный чугуный велосипед с маленькими тругольными колёсиками=)
    Может посоветуете чего по этому вопросу господа программисты? Буду счастлив и благодарен=)
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Код (Text):
    1.  
    2. hosting(440hz):~/php$>cat words.php
    3. <?php
    4.  
    5. $text = "
    6.  
    7. я ненавижу windows я ненавижу windows я ненавижу windows я ненавижу windows я ненавижу windows
    8.  
    9. я ненавижу windows я ненавижу windows я ненавижу windows я ненавижу windows
    10.  
    11. я ненавижу windows я ненавижу windows я ненавижу windows
    12.  
    13. ";
    14.  
    15. $result = preg_replace('/(windows)/i','<a>$1</a>',$text);
    16.  
    17. print $result;
    18.  
    19. ?>hosting(440hz):~/php$>php words.php
    20.  
    21.  
    22. я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a>
    23.  
    24. я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a>
    25.  
    26. я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a>
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    развиваем тему

    Код (Text):
    1. hosting(440hz):~/php$>cat words.php
    2. <?php
    3.  
    4. $text = "
    5.  
    6. я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a>
    7.  
    8. я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a>
    9.  
    10. я ненавижу <a>windows</a> я ненавижу <a>windows</a> я ненавижу <a>windows</a>
    11.  
    12. ";
    13.  
    14. $result = preg_replace("#не(навижу)#is",'\\1',$text);
    15.  
    16. print $result;
    17.  
    18. ?>hosting(440hz):~/php$>php words.php
    19.  
    20.  
    21. я навижу <a>windows</a> я навижу <a>windows</a> я навижу <a>windows</a> я навижу <a>windows</a> я навижу <a>windows</a>
    22.  
    23. я навижу <a>windows</a> я навижу <a>windows</a> я навижу <a>windows</a> я навижу <a>windows</a>
    24.  
    25. я навижу <a>windows</a> я навижу <a>windows</a> я навижу <a>windows</a>
     
  5. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    440Hz
    Вот в том-то всё и дело. он заменяет каждое вхождение слова, а мне надо только перовое=)
     
  6. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    440Hz
    Всё понял, лимит есть, а проверю=) Спасибо=)