@Sh3nku

Как вырезать конкретную фразу, 50 символов до и 50 символов после неё?

Вопрос с шапке. Помогите плиз, как то туго думается.

Есть текст (чисто для примера):
"Текст — зафиксированная на каком-либо материальном носителе человеческая мысль; в общем плане связная и полная последовательность символов. Существуют две основные трактовки понятия «текст»: имманентная (расширенная, философски нагруженная) и репрезентативная (более частная). Имманентный подход подразумевает отношение к тексту как к автономной реальности, нацеленность на выявление его внутренней структуры."

Необходимо вырезать фразу "философски нагруженная" и определённое количество символов до и после фразы, пусть будет 50 символов.

Заранее благодарю.
  • Вопрос задан
  • 158 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега Регулярные выражения
$str = "философски нагруженная";
preg_match("/.{50}$str.{50}/u", $text, $match);
Ответ написан
Stimulate
@Stimulate
могу
$text = 'Текст — зафиксированная на каком-либо материальном носителе человеческая мысль; в общем плане связная и полная последовательность символов. Существуют две основные трактовки понятия «текст»: имманентная (расширенная, философски нагруженная) и репрезентативная (более частная). Имманентный подход подразумевает отношение к тексту как к автономной реальности, нацеленность на выявление его внутренней структуры.';

preg_match('/(.{50})философски нагруженная(.{50})/Siu', $text, $match);


print_r($match);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
RhesusNegative
@RhesusNegative
Negative
Первое что пришло в голову
$text = "Текст — зафиксированная на каком-либо материальном носителе человеческая мысль; в общем плане связная и полная последовательность символов. Существуют две основные трактовки понятия «текст»: имманентная (расширенная, философски нагруженная) и репрезентативная (более частная). Имманентный подход подразумевает отношение к тексту как к автономной реальности, нацеленность на выявление его внутренней структуры.";

$replace = str_replace("философски нагруженная", "|", $text);

$array = explode("|", $replace);
$first = $array[0];
$last = $array[1];
echo $result = substr($first, 0, -50).substr($last, 50);
Ответ написан
Ваш ответ на вопрос

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

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