Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Обрезка текста до определенного слова

Обрезка текста до определенного слова


     26.04.2014    php, mb_substr, substr, strstr, preg_match, preg_match_all    Общие вопросы по PHP, Хаки, MySQL    3855

вопрос
Здравствуйте уважаемые!
Подскажите пожалуйста как обрезать текст до определенного слова.
Есть новости. Все новости надо порезать до определенного слова которое встречается в них что то типа
{habracut} и сохранить опять таки в БД только в другую категорию.
Если есть вариант сделать это прямо в бд запросом буду признателен вдвойне =)

Ответил: cybernatic


Если кому то нужен будет ответ:
$text = "Мой длинный текст с разделителем {cut} данный текст уже обрезан и не должен показываться";
$pos = mb_stristr($text,'{cut}', true);

echo trim($pos);

вернет: Мой длинный текст с разделителем

14 комментариев

lutskboy
Эксперт

lutskboy - 27 апреля 2014 14:31 -

читай строковые функции типа strlen substr/ или через explode

cybernatic
Эксперт

cybernatic - 27 апреля 2014 14:32 -

explode слишком долго будет обрабатывать
надо подсчитать кол-во символов до определенного слова в тексте и обрезать все что находится после него

lutskboy
Эксперт

lutskboy - 27 апреля 2014 14:38 -

вот видишь. ты и сам знаешь. а зачем спрашивать.

cybernatic
Эксперт

cybernatic - 27 апреля 2014 14:40 -

Кажись так :-)
mb_strpos + mb_substr


$text = "Мой длинный текст с разделителем {cut} данный текст уже обрезан и не должен показываться";

$cut = mb_substr(0,mb_strpos($text,'{cut}'),$text);
echo $cut;

dj-avtosh
PHP-developer

dj-avtosh - 27 апреля 2014 15:29 -


cybernatic, mb_ юзаешь без задания кодировки?


По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

cybernatic
Эксперт

cybernatic - 27 апреля 2014 16:32 -

Да без указания, вроде берет по умолчанию с настроек php

cybernatic
Эксперт

cybernatic - 27 апреля 2014 16:33 -

Правда ответ посмотри я по другому сделал, так как версия php > 5.3

dj-avtosh
PHP-developer

dj-avtosh - 27 апреля 2014 17:19 -

и что там относительно word_wrap нового?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

cybernatic
Эксперт

cybernatic - 27 апреля 2014 17:20 -

Причем тут word_wrap?

dj-avtosh
PHP-developer

dj-avtosh - 27 апреля 2014 17:23 -

не wordwrap ли это делает без всяких костылей?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

cybernatic
Эксперт

cybernatic - 27 апреля 2014 17:25 -

WW() просто оборачивает str после определенной длинны тем что укажешь в нем 3тим параметром.
А мне надо было просто удалить все символы которые будут после {cut} и я ее сделал с помощью mb_stristr с TRUE в третьем параметре как написанно в phpmanual

dj-avtosh
PHP-developer

dj-avtosh - 27 апреля 2014 17:29 -

current ( explode ( 'слово', $string ) )

php 5.4+
explode ( 'слово', $string ) [0]

может и так будет работать...

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

cybernatic
Эксперт

cybernatic - 27 апреля 2014 17:30 -

Можешь помочь с аяксом и фильтром я напишу тебе в лс? )

dj-avtosh
PHP-developer

dj-avtosh - 27 апреля 2014 17:32 -

новый вопрос задавай

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх