За последние 24 часа нас посетили 15652 программиста и 1552 робота. Сейчас ищут 867 программистов ...

Умная замена слов в тексте.

Тема в разделе "PHP для новичков", создана пользователем Alex_ST, 9 май 2012.

  1. Alex_ST

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

    С нами с:
    5 дек 2011
    Сообщения:
    23
    Симпатии:
    0
    собственно код:
    Код (Text):
    1.  
    2. $subject = "PHP scripting language perfect for creating Websites.";
    3.  $pattern = Array(
    4.         "/\bperfect\b/i",
    5.         "/\bwebsites\b/i"
    6.  );
    7.  
    8.  $replacement = Array(
    9.         "best",
    10.         "webpages"
    11.  );
    12.  
    13.  $result = preg_replace($pattern, $replacement, $subject);
    14.  
    15.  echo ucfirst($result);
    16.  
    17.  ?>
    При такой замене на выходе получаем:
    PHP scripting language best for creating webpages.
    но вот проблема в том что если слово поиска будет с большой буквы то после замены оно станет с маленькой.
    Конечно если это слово было первом в строке то тут можно оградить себя и поставить ucfirst(), но что делать если такое слово находиться просто в тексте. Или если это слово является началом нового предложения. К тому, что если слово является началом нового предложения, я логически нашел выход, после (.!?) заменить последующий буквенный символ с прописного на заглавный, но тут тоже встретил стену.
    Вроде как и срипт есть, но текст теряет всю красоту.
    Если не сложно подскажите что нибудь по делу.
    За ранее благодарен.
     
  2. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент