Есть длинный текст:
"Это очень длинний текст, в нем нужно найти определенное слово и обрезать строку по нему. Так же добавить три точки до и после"
Нужно найти "Так же" и обрезать этот текст (на 20 символов вперед и назад к примеру)
В итоге должно получится что-то вроде такого:
"... обрезать строку по нему. Так же добавить три точки ..."
При этом в тексте может быть несколько совпадений, в таком случае брать первое
$text = 'Это очень длинний текст, в нем нужно найти определенное слово и обрезать строку по нему. Так же добавить три точки до и после';
echo preg_replace('/.{20}\S*(.*)\s.{20}.*/u', '...$1...', $text);
Alex47517, не правильно прочитал решил что просто обрезать 20 сначала 20 с конца.
$text = 'Это очень длинний текст, в нем нужно найти определенное слово и обрезать строку по нему. Так же добавить три точки до и после Так же добавить три точки до и после ';
echo preg_replace('/.*?\s(.{1,20}Так же.{1,20})\s.*/u', '...$1...', $text);
$text = 'Это очень длинний текст, в нем нужно найти определенное слово и обрезать строку по нему. Так же добавить три точки до и после Так же добавить три точки до и после ';
echo '...'.mb_substr(mb_substr($text, mb_strpos($text, 'Так же')-20, 46), mb_strpos($text, ' '), mb_strrpos($text, ' ')).'....'
Может даже лучше регулярок. Как говорится в шутке
когда вы решаете проблему с помощью регулярных выражений у вас появляются 2 проблемы