Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117

Обрезать тег <br /> только в конце или в начале строки

04.07.2014, 13:25. Показов 3106. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте товарищи. Нуждаюсь в вашей помощи.
И сразу к делу.

Мне нужно обрезать теги <br /> при условии если они встречаются в начале или в конце строки.

Пример:

HTML5
1
2
3
4
5
<br />
Сегодня хорошая погода.
<br />
Можно пойти на улицу, а можно остаться дома.
<br />
Нужно обработать эту строку так, что бы крайние теги <br /> были удалены, но все что внутри оставались на своих местах. Т.е. на выходе нужно получить следующее.

HTML5
1
2
3
Сегодня хорошая погода.
<br />
Можно пойти на улицу, а можно остаться дома.
Функция strip_tags насколько я понимаю удалит все теги, как снаружи текста, так и внутри. Думал может быть как-то можно использовать функцию trim, в виде trim($string, '<br />'); но боюсь так я могу обрезать не только тег, но и соседние символы при совпадении.

В общем нужна ваша помощь, как обрезать тег <br /> только в начале и в конце строки, не задевая этот тег внутри текста?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2014, 13:25
Ответы с готовыми решениями:

Как обрезать пробелы в начале и в конце строки?
Как обрезать любое количество пробелов в начале и в конце строки, если они там есть? И вернуть ту же строку без пробелов. Например: было...

Подставить тег [img] в начале и конце строки (memo)
Здравствуйте ! Помогите разобраться в мемо есть список ссылок вида ссылка ссылка ит д

Как поставить тег в начале и конце каждой строки через sed?
Как с помощью команды sed поставить тег div в начале и конце каждой строки и возможно ли это вообще?

8
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
04.07.2014, 13:38
PHP
1
2
$str = "<br />Сегодня хорошая погода.<br />Можно пойти на улицу, а можно остаться дома.<br />";
$str = preg_replace("/^<br \/>|<br \/>$/","",$str);
0
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
04.07.2014, 13:47  [ТС]
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
$str = preg_replace("/^<br \/>|<br \/>$/","",$str);
У меня почему-то обрезался только один последний тег.

Написал так:

HTML5
1
2
3
4
5
6
<br />
Сегодня хорошая погода.
<br />
Можно пойти на улицу, а можно остаться дома.
<br />
<br />
PHP
1
$str = preg_replace("/^<br \/>|<br \/>$/","",$str);
Получил следующее:

HTML5
1
2
3
4
5
<br />
Сегодня хорошая погода.
<br />
Можно пойти на улицу, а можно остаться дома.
<br />
Это уже на сервере проверял.
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
04.07.2014, 14:21
Где и как вы берете строку?

Добавлено через 9 минут
PHP
1
2
3
4
5
6
7
8
9
10
$str  = "<br />
Сегодня хорошая погода.
<br />
Можно пойти на улицу,<br /> а можно остаться дома.
<br />";
        $str_arr = explode("\n", $str);
        for($i = 0; $i < count($str_arr); $i++)
            $str_arr[$i] = preg_replace("/^<br \/>|<br \/>$/","",$str_arr[$i]);
        $str = implode("\n", $str_arr);
        echo $str;
0
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
04.07.2014, 15:27  [ТС]
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Где и как вы берете строку?
Строка приходит из формы с помощью POSTа.
Далее строка обрабатывается на предмет переноса строк с помощью вот такого выражения

PHP
1
$text = preg_replace("/\n/", "<br />", $text);
Далее подставил ваш вариант

PHP
1
$text = preg_replace("/^<br \/>|<br \/>$/","",$text);
Но удаляется в таком ключе только последний <br />, но если их например несколько, остальные остаются.

Сейчас попробую ваш второй вариант. Отпишусь.

Тоже самое - теги как были так и остались

Добавлено через 11 минут
На голой странице оба ваши варианта работают, а когда добавляю в свой обработчик - не работает
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
04.07.2014, 15:34
Лучший ответ Сообщение было отмечено by-bad как решение

Решение

by-bad, Пробуйте
PHP
1
2
$text = trim($_POST['text']);
$text = preg_replace("/\n/","<br />",$text);
1
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
04.07.2014, 15:39  [ТС]
Kerry_Jr, Отлично - теперь работает )))

Снимаю шляпу

Добавлено через 1 минуту
У меня обрезка дальше стояла ))

PHP
1
2
if (isset($text))   {trim($text);}
else {$text = "";}
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
04.07.2014, 15:40
Если б Вы сразу написали, как получаете строку и что именно нужно с ней сделать, мы б с Вами не мучились так долго
0
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
04.07.2014, 15:42  [ТС]
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Если б Вы сразу написали, как получаете строку и что именно нужно с ней сделать, мы б с Вами не мучились так долго
Извините меня засранца
И ещё раз большое спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.07.2014, 15:42
Помогаю со студенческими работами здесь

Поиск grep-ом шаблона в начале ИЛИ в конце строки
Хай всем. Нужна хелпа. Нужно сконструировать для grep регулярное выражение, которое выводит строки, начинающиеся с «ta» или...

Нужно найти строки, в которых стоят две В в начале или в конце(вывести YES); и строки, где в середине идет подряд три В(вывести NO)
Дано некоторое количество строк с символами А и В. Нужно найти строки, в которых стоят две В в начале или в конце(вывести YES); и строки,...

Обрезать пробелы в конце строки.
Задача образеть пробелы в конце строки(строка может быть очень большой). Строка передаётся в функцию void TrimRight( char *s ), нужно...

ID в ЧПУ лучше сделать в начале или в конце?
Привет! Как лучше для поисковиков: http://site.com/category/123-moya-ssylka или http://site.com/category/moya-ssylka-123 ?

Удаление буквы А в начале и в конце строки
Помогите пожалуйста решить кто нибудь вот эту программу) НАПИСАТЬ ПРОГРАММУ КОТОРАЯ ВВОДИТ С КЛАВИАТУРЫ (строку должен ввести сам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru