За последние 24 часа нас посетили 61011 программистов и 1744 робота. Сейчас ищут 1026 программистов ...

Поставить ссылку на последние два слова

Тема в разделе "PHP для новичков", создана пользователем dobs, 3 апр 2009.

  1. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Подскажите плиз как можно замутить такую штуку
    Типа подается текст

    Наиболее активными являются жители крупных городов, молодежь, люди с высоким доходом.

    И на выходе надо получить

    Наиболее активными являются жители крупных городов, молодежь, люди с <a href="id....">высоким доходом.</a>

    Тобиш поставить ссылку на последние два слова....
    как такое можно реализовать?
     
  2. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    $text=tr_replace("высоким доходом", "<a href=\"id....\">высоким доходом.</a> ", $text)
     
  3. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    спс, а каким методом можно найти последних 2 слова?
     
  4. chukushka

    chukushka Guest

    dobs
    ручками все делается)))
     
  5. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Да не тут не прокатит ручной вариант...
     
  6. chukushka

    chukushka Guest

    текста много перекапывать?
     
  7. chukushka

    chukushka Guest

    dobs
    у енота спроси))))
     
  8. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Делаю чет типа блога, и надо чтоб автоматом ставилось...
     
  9. chukushka

    chukushka Guest

    поняно
     
  10. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    искать два последних пробела;)
     
  11. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Есть идея
    Код (Text):
    1. $x = explode(' ',$str);
    2. echo count($x);
    а потом как то в цикле оторвать и заменить кусок, но как по мне это не катит...
     
  12. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
  13. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Ем итак прошу заценить боян который сотворил, у кого какие мысли по поводу апдейта?

    PHP:
    1. $str = 'Компания Super Talent demo представила высокопроизводительные RAIDDrive';
    2.     $words = explode(' ',$str);
    3.     $co = count($words);
    4.    
    5.     foreach ($words as $key => $word) {
    6.        
    7.     if($key == $co-2)
    8.     echo '[url=site.com/blog/id]';
    9.    
    10.     if($key == $co-1)
    11.     echo $word;
    12.     else
    13.     echo $word.' ';
    14.    
    15.     if($key == $co-1)
    16.     echo '[/url]';
    17.     }
     
  14. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    во-первых, trim заюзай, так на всякий=)
    во-вторых, FOREACH всятаки надо юзать на ассоциативных массивах.
    ну, и в целом это наверное не самый производительный вариант.
     
  15. akrinel

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

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    На примерах типа "Вася любит мамбу и Свету", "На этом закончим. Следующий сюжет проанализируем из Дюма". Будет лагать - выделять "и Свету" вместо "мамбу и Свету".
     
  16. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Ага есть такое...
     
  17. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    dobs
    Рекомендую познакомится с регулярными выражениями.
    Еще один аргумент в сторону регулярок :)
     
  18. dobs

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

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Всем спасибо, но к сожалению босу не понравилась его же задумка насчет двух последних ссылок...
     
  19. alexeurodnepr

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

    С нами с:
    18 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    конечно ужас... но работает)

    PHP:
    1.  
    2. <?php
    3. $str = "Наиболее активными являются жители крупных городов, молодежь, люди с высоким доходом.";
    4. $str = trim($str);
    5. $exp = explode(" ", $str);
    6. $max = max(array_keys($exp));
    7. $repl = $exp[$max-1]." ".$exp[$max]; // тут вообще кашмар
    8. echo preg_replace("/($repl)/i","<a href='url'>\\1</a>",$str);
    9.  

    встречный вопрос... почему у меня не работает эта конструкция, оно ж должно выводить числа в обратном порядке, но у меня вообще ничего не выводит, что не так??
    PHP:
    1.  
    2. <?php
    3. for($i=10;$i<0;$i--)
    4. {
    5.     echo $i;
    6. }
    7.  
    8.  
    хотел сделать ту хрень шо выше более функциональной остановился на этом...
    PHP:
    1.  
    2. <?php
    3. $str = "Наиболее активными являются жители крупных городов, молодежь, люди с высоким доходом.";
    4. $i = 2;
    5. $str = trim($str);
    6. $exp = explode(" ", $str);
    7. $max = max(array_keys($exp));
    8. for($i;$i<0;$i--) {
    9.   $repl .= $exp[$max-$i]." ";
    10. }
    11.  
    12. echo preg_replace("/($repl)/i","<a href='url'>\\1</a>",$str);
    13.  
    14.