Как вставить слово через определенное количество символов+ до пробела?

Собственно вот код:
$s = "Очень длинное пр едложение каждый раз  разное поэтому привязки к определенным символам класс ам нет и не будет";
            $str = str_replace (" ", "", $s);
            $kol_bukv = strlen ($str);
 
            if($kol_bukv > 30){

    $add = '[spoler]';
                $pos = 30; //в какую позицию исходно строки вставить добавочную стоку
                $result = substr($s, 0, $pos).$add.substr($s, -$pos);
                echo $result; 


            }else{
                echo $s;
            }


выводится следующее:
"Очень длинное пр[spoler]ам нет и не будет"

надо чтобы вывелось так:
"Очень длинное предложение [spoler] каждый раз разное поэтому привязки к определенным символам классам нет и не будет"

то есть отсчитать 30 символов, потом дойти до пробела, поставить " [spoler] " и продолжить текст дальше.
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
lidacriss
@lidacriss
wtf
$s = "Очень длинное предложение каждый раз  разное поэтому привязки к определенным символам класс ам нет и не будет";
$insert = '[spoiler]';
$str = preg_replace('#^(.{30}\S*?) #', "$1 {$insert} ", $s);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы