Форум об интернет-маркетинге
Вернуться   Форум об интернет-маркетинге > Технические вопросы > Веб-строительство

Ответ
 
Опции темы
Старый 25.11.2020, 21:56   #11
leonidukg
Работаю ⌛
Доцент
 
Аватар для leonidukg
 
Регистрация: 10.07.2020
Сообщений: 162
Сказал(а) спасибо: 6
Получил(а) "Спасибо": 250
Нарушения: 0/0 (0)
Репутация: 138205
Отправить сообщение для leonidukg с помощью ICQ

По умолчанию Re: Удалить из текста все div'ы с содержимым

не с той стороны подходите к делу.

Почему просто не preg_match_all('@<p.*?>.*?</p>@smi') и всё?
leonidukg вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Старый 25.11.2020, 22:35   #12
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 541251

По умолчанию Re: Удалить из текста все div'ы с содержимым

Цитата:
Сообщение от seokotov Посмотреть сообщение
не срабатывает, видимо не понимает что за \S\s. в итоге получаю пустоту
При слэшах в качеств обрамления, надо экранировать еще и сами символы внутри - сделайте как я написал, в скобках.
И да - у вас UTF-8 текст? (u символ после скобок), если нет - уберите его.
XPraptor вне форума   Ответить с цитированием
Сказали спасибо:
Старый 25.11.2020, 22:36   #13
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 541251

По умолчанию Re: Удалить из текста все div'ы с содержимым

Цитата:
Сообщение от leonidukg Посмотреть сообщение
не с той стороны подходите к делу.
Я уже писал ниже, человек паттерн не знает как вписать в код, а вы ему preg_match_all суете
А там массивы-массивов могут быть, если вложенные теги Устанет потом понимать как забрать найденное
XPraptor вне форума   Ответить с цитированием
Сказали спасибо:
Старый 25.11.2020, 22:56   #14
leonidukg
Работаю ⌛
Доцент
 
Аватар для leonidukg
 
Регистрация: 10.07.2020
Сообщений: 162
Сказал(а) спасибо: 6
Получил(а) "Спасибо": 250
Нарушения: 0/0 (0)
Репутация: 138205
Отправить сообщение для leonidukg с помощью ICQ

По умолчанию Re: Удалить из текста все div'ы с содержимым

Цитата:
Сообщение от XPraptor Посмотреть сообщение
Я уже писал ниже, человек паттерн не знает как вписать в код, а вы ему preg_match_all суете
А там массивы-массивов могут быть, если вложенные теги Устанет потом понимать как забрать найденное
При удалении div там тоже могут быть ППЦ что. Лучше уж вытащить все <P>. Пусть разбирается, что тут теперь сделать. Программирование без разбирательства, уж лучше заказать код.
leonidukg вне форума   Ответить с цитированием
Сказали спасибо:
Старый 26.11.2020, 00:28   #15
seokotov
se ксенофоб
Доцент
 
Аватар для seokotov
 
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076

Thread Starter Re: Удалить из текста все div'ы с содержимым

Цитата:
Сообщение от leonidukg Посмотреть сообщение
не с той стороны подходите к делу.

Почему просто не preg_match_all('@<p.*?>.*?</p>@smi') и всё?
хорошо бы но так вообще ни один див не пострадал

подскажи где лучше начать путь изучения этого наследия? чувствую очень интересно и не раз еще пригодится
seokotov вне форума   Ответить с цитированием
Старый 26.11.2020, 00:33   #16
seokotov
se ксенофоб
Доцент
 
Аватар для seokotov
 
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076

Thread Starter Re: Удалить из текста все div'ы с содержимым

Цитата:
Сообщение от XPraptor Посмотреть сообщение
При слэшах в качеств обрамления, надо экранировать еще и сами символы внутри - сделайте как я написал, в скобках.
И да - у вас UTF-8 текст? (u символ после скобок), если нет - уберите его.
сделал так
Код:
(<div([\S\s]*?)</div>|</div>|<a([\S\s]*?)</a>)iu
и сработало
Благодарю дичайше
seokotov вне форума   Ответить с цитированием
Старый 09.01.2021, 03:02   #17
seokotov
se ксенофоб
Доцент
 
Аватар для seokotov
 
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076

Thread Starter Re: Удалить из текста все div'ы с содержимым

Цитата:
Сообщение от XPraptor Посмотреть сообщение
...
Снова я со своей дичью Появилась нужда из страницы не удалять div с определенным классом а еще лучше оставлять только его содержимое а div не обязателен. div class="photo"

Возможно такое исключение в это выражение запилить?
То есть в идеале убивать все дивы с содержимым как сейчас
Цитата:
(<div([\S\s]*?)</div>|</div>|<a([\S\s]*?)</a>)iu
, но содержимое одного из дивов оставлять...
seokotov вне форума   Ответить с цитированием
Старый 09.01.2021, 14:49   #18
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 541251

По умолчанию Re: Удалить из текста все div'ы с содержимым

seokotov, обратный просмотр в регвыражениях очень сложная и затратная операция, поэтому, используется редко.
В вашем случае лучше сделать два прохода, будет в разы быстрее.
Первый проход - переименовываем/меняем див с нужным классом на что-то, что не удаляется вторым выражением, которое мы достигли в прошлый раз.
Состояние бота google и полезные ресурсы: всё про гугл
XPraptor вне форума   Ответить с цитированием
Сказали спасибо:
Старый 09.01.2021, 16:37   #19
seokotov
se ксенофоб
Доцент
 
Аватар для seokotov
 
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076

Thread Starter Re: Удалить из текста все div'ы с содержимым

Цитата:
Сообщение от XPraptor Посмотреть сообщение
seokotov, обратный просмотр в регвыражениях очень сложная и затратная операция, поэтому, используется редко.
В вашем случае лучше сделать два прохода, будет в разы быстрее.
Первый проход - переименовываем/меняем див с нужным классом на что-то, что не удаляется вторым выражением, которое мы достигли в прошлый раз.
как в таком случае заменить div class="photo" на p? ну или просто убрать этот div оставив содержимое?
seokotov вне форума   Ответить с цитированием
Старый 09.01.2021, 20:40   #20
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 541251

По умолчанию Re: Удалить из текста все div'ы с содержимым

Да также:
Код:
$text=preg_replace("(<div class=\"photo\".*?>([\S\s]*?)</div>)iu", "$1", $text);
XPraptor вне форума   Ответить с цитированием
Сказали спасибо:
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Затирается крайний символ при вводе текста Онегин Разносортица 14 18.11.2020 19:46
Как удалить сразу все твиты в твиттере Chikk Соцсети 2 14.09.2020 14:23
Страницы с маленьким объемом текста sanek1991 Продвижение и оптимизация сайтов 10 22.07.2020 17:31
Поиск голоса для озвучивания текста. Strateg Биржа услуг 21 20.07.2020 13:29


Текущее время: 13:02. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc. Перевод: zCarot