fork(2) download
  1. <?php
  2.  
  3. //создаем массив с регулярками
  4. $words_result = array('верстк', 'дизайн', 'программировани', 'seo-продвижени'); //слова без окончаний
  5. $words_count = count($words_result);
  6. $regulars = array();
  7. for($i = 1; $i <= $words_count; $i++)
  8. {
  9. $regulars[] = '#('.$words_result[$i - 1].'(?:ей|ов|ая|ый|ем|ое|ой|ую|ого|ому|ему|ом|ым|а|я|у|е|ы|ю|))#Uiu';
  10. }
  11.  
  12. //правим тексты из постов
  13. $posts = array(
  14. 0=>array(
  15. 'text'=>'Верстку дизайна программирования',
  16. ),
  17. 1=>array(
  18. 'text'=>'Верстку Дизайна Программирования',
  19. ),
  20. 2=>array(
  21. 'text'=>'Верстку Программирования дизайна',
  22. )
  23. );
  24. $posts_count = count($posts);
  25. for($i = 1; $i <= $posts_count; $i++)
  26. {
  27. foreach($regulars as $regular)
  28. {
  29. $posts[$i - 1]['text'] = preg_replace($regular, '<b>\1</b>', $posts[$i - 1]['text']);
  30. }
  31. }
  32. var_dump($posts);
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
array(3) {
  [0]=>
  array(1) {
    ["text"]=>
    string(83) "<b>Верстку</b> <b>дизайна</b> <b>программирования</b>"
  }
  [1]=>
  array(1) {
    ["text"]=>
    string(83) "<b>Верстку</b> <b>Дизайна</b> <b>Программирования</b>"
  }
  [2]=>
  array(1) {
    ["text"]=>
    string(83) "<b>Верстку</b> <b>Программирования</b> <b>дизайна</b>"
  }
}