Поиск и замена в ПХП по целым словам?

Тема в разделе "PHP", создана пользователем alex-bot, 11 янв 2011.

Модераторы: latteo
  1. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    498
    Симпатии:
    144
    Нужно из тайтлов сделать теги к постам, но в англ языке много мусора типа предлоги артикли, нужно все это выкинуть...
    Начал делать так потом понял, что это удаляет все вхождения:
    PHP:
    $zameny = array("-""!""?"":",  "1""2""3""4""5""6""7""8""9""0","a""an""the""to""in""of""by""vs""A""An""The""To""In""Of""By""Vs""as""As""be""is""can""more""better""or""with""against""which""certainly" );
    $tags str_replace($zameny""$subj);
    $tags str_replace(" "", "$tags);
    Как вариант можно добавить пробелы типа " An ", но тоже коряво, может есть что-то готовое или как удалять только если это целое слово?
    Еще в догонку думаю может удалять по количеству букв в слове, т.е. если меньше 5 удалить... тогда будет что-то вроде этого?
    PHP:
    $string preg_replace("[a-zA-Z]{0,5}\i"""$string);
    Или может что-то готовое есть... чтоб велосипед не изобретать...
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    562
    Вообще, скорее всего в генерации тегов предусмотрена возможность удаления коротких символов.
    Либо можно удалить так
    PHP:
    $string preg_replace("~[^a-zA-Z0-9](\S{1,5})[^a-zA-Z0-9]~s",   ""' '.str_replace(' ''  '$text).' '  );
     
    gurugavr1986 и alex-bot нравится это.