![]() |
|
|
#21 | |
|
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
Цитата:
|
|
|
|
|
|
|
#22 |
|
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
seokotov, сам шаблон верный, вся суть как его программа забирает и какие настройки перед этим применяет.
Вместо скобок просто используйте % Вот так попробуйте: Код:
@INLINE {$news_content | preg_replace : '%<div class="(arcticle__read\-more read\-more|article__social\-wrapper|arcticle__read\-more read\-more|read\-more__photo)".*?>[\S\s]*?</div>%'}
Можете сами протестить, в файл test.txt закинуть html код страницы тестовой и в php файле выполнить: Код:
$test_text=file_get_contents("test.txt");
$testshab='<div class="(arcticle__read\-more read\-more|article__social\-wrapper|arcticle__read\-more read\-more|read\-more__photo)".*?>[\S\s]*?</div>';
echo preg_replace("%" . $testshab . "%iu", "|||||||||||||||||||||||||||||||||", $test_text);
Последний раз редактировалось XPraptor; 30.08.2022 в 20:41. |
|
|
|
|
|
#23 |
|
попробуй отними
Профессор
Регистрация: 14.07.2020
Сообщений: 911
Сказал(а) спасибо: 1,129
Получил(а) "Спасибо": 2,182
Нарушения: 0/0 (0)
Репутация: 757769
|
seokotov, я когда занимался очисткой спаршенного кода от всякого мусора, не делал больших регулярок, намного быстрее получалось прогнать 3-4 коротких чем 1 длинную,
да и самому проще контролировать результат работы и вносить правки P.S. и ещё очень часто проще получать нужные данные сразу при парсинге средствами работы с dom чем потом разбирать регулярками |
|
|
|
| 2 пользователя(ей) сказали cпасибо: |
|
|
#24 |
|
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
ребяты а как jwplayer заставить работать?
вот код источника ![]() а у меня вот так выводит ![]() хотя код в принципе не трогает этот блок Код:
@INLINE {$news_content | preg_replace : '(<div class="(arcticle__read\-more read\-more|article__social\-wrapper|arcticle__read\-more read\-more|read\-more__photo|article__google\-news\-mobile|clears mh)".*?>([\S\s]*?)</div>|</div>|<a([\S\s]*?)</a>)iu'}
|
|
|
|
|
|
#25 |
|
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
а еще как удалить тег div оставив содержимое?
у меня остаются некоторые div блоки и дополнительно один лишний </div> ![]() и летит верстка но когда ресурс сохраняется еще раз то все на место встает ничего не понимаю ) |
|
|
|
|
|
#26 |
|
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
Вот эта часть в шаблоне вашем поиска: ...</div>|</div>|... заменяет окончание дива без его начала.
Перед ним шаблон с началом дива и концом, а этот шаблон после него должен вообще удалить все закрывающие дивы которые не имеют перечисленных классов в предыдущем шаблоне, зачем он? Удалить дивы, оставив содержимое, я не могу понять что за шаблонизатор у вас (@INLINE {...), но в реальном preg_replace в php это выглядело бы так: Код:
$news_content=preg_replace("%<div.*?>([\S\s]*?)</div>%iu", "$1", $news_content);
|
|
|
|
|
|
#27 | |
|
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
новое веселье. хочу удалить блок полностью НО
есть в источнике такой блок Код:
<div class="cross-links"><ul><li><a href="/world/1395744-%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3-%D8%A7%D9%84%D8%A3%D9%88%D9%83%D8%B1%D8%A7%D9%86%D9%8A-%D9%8A%D9%88%D9%82%D8%B9-%D9%85%D8%B1%D8%B3%D9%88%D9%85%D8%A7-%D8%B1%D9%81%D8%B6-%D8%A3%D9%8A-%D9%85%D9%81%D8%A7%D9%88%D8%B6%D8%A7%D8%AA-%D8%A8%D9%88%D8%AA%D9%8A%D9%86/"><div class="photo"><picture><!--[if IE 9]><video style="display: none;"><![endif]--><source media="(-webkit-min-device-pixel-ratio: 2) and (min-resolution: 120dpi)" data-srcset="
https://cdni.russiatoday.com/media/pics/2022.10/xxs/633c10b54c59b724f66d2bfb.jpg 560w,
https://cdni.russiatoday.com/media/pics/2022.10/xs/633c10b54c59b724f66d2bfb.jpg 640w,
https://cdni.russiatoday.com/media/pics/2022.10/thumbnail/633c10b54c59b724f66d2bfb.jpg 920w,
https://cdni.russiatoday.com/media/pics/2022.10/m/633c10b54c59b724f66d2bfb.jpg 1080w,
https://cdni.russiatoday.com/media/pics/2022.10/l/633c10b54c59b724f66d2bfb.jpg 1536w,
https://cdni.russiatoday.com/media/pics/2022.10/article/633c10b54c59b724f66d2bfb.jpg 1960w,
https://cdni.russiatoday.com/media/pics/2022.10/xxl/633c10b54c59b724f66d2bfb.jpg 2480w
" srcset="
https://cdni.russiatoday.com/media/pics/2022.10/xxs/633c10b54c59b724f66d2bfb.jpg 560w,
https://cdni.russiatoday.com/media/pics/2022.10/xs/633c10b54c59b724f66d2bfb.jpg 640w,
https://cdni.russiatoday.com/media/pics/2022.10/thumbnail/633c10b54c59b724f66d2bfb.jpg 920w,
https://cdni.russiatoday.com/media/pics/2022.10/m/633c10b54c59b724f66d2bfb.jpg 1080w,
https://cdni.russiatoday.com/media/pics/2022.10/l/633c10b54c59b724f66d2bfb.jpg 1536w,
https://cdni.russiatoday.com/media/pics/2022.10/article/633c10b54c59b724f66d2bfb.jpg 1960w,
https://cdni.russiatoday.com/media/pics/2022.10/xxl/633c10b54c59b724f66d2bfb.jpg 2480w
" sizes="148px"><source data-srcset="
https://cdni.russiatoday.com/media/pics/2022.10/xxs/633c10b54c59b724f66d2bfb.jpg 280w,
https://cdni.russiatoday.com/media/pics/2022.10/xs/633c10b54c59b724f66d2bfb.jpg 320w,
https://cdni.russiatoday.com/media/pics/2022.10/thumbnail/633c10b54c59b724f66d2bfb.jpg 460w,
https://cdni.russiatoday.com/media/pics/2022.10/m/633c10b54c59b724f66d2bfb.jpg 540w,
https://cdni.russiatoday.com/media/pics/2022.10/l/633c10b54c59b724f66d2bfb.jpg 768w,
https://cdni.russiatoday.com/media/pics/2022.10/article/633c10b54c59b724f66d2bfb.jpg 980w,
https://cdni.russiatoday.com/media/pics/2022.10/xxl/633c10b54c59b724f66d2bfb.jpg 1240w
" srcset="
https://cdni.russiatoday.com/media/pics/2022.10/xxs/633c10b54c59b724f66d2bfb.jpg 280w,
https://cdni.russiatoday.com/media/pics/2022.10/xs/633c10b54c59b724f66d2bfb.jpg 320w,
https://cdni.russiatoday.com/media/pics/2022.10/thumbnail/633c10b54c59b724f66d2bfb.jpg 460w,
https://cdni.russiatoday.com/media/pics/2022.10/m/633c10b54c59b724f66d2bfb.jpg 540w,
https://cdni.russiatoday.com/media/pics/2022.10/l/633c10b54c59b724f66d2bfb.jpg 768w,
https://cdni.russiatoday.com/media/pics/2022.10/article/633c10b54c59b724f66d2bfb.jpg 980w,
https://cdni.russiatoday.com/media/pics/2022.10/xxl/633c10b54c59b724f66d2bfb.jpg 1240w
" sizes="148px"><!--[if IE 9]></video><![endif]--><img data-sizes="auto" src="https://cdni.russiatoday.com/media/pics/2022.10/xxs/633c10b54c59b724f66d2bfb.jpg" class="lazyautosizes js-lazysize_loaded" data-src="https://cdni.russiatoday.com/media/pics/2022.10/xxs/633c10b54c59b724f66d2bfb.jpg" alt="الكرملين يعلق على إغلاق كييف باب التفاوض مع موسكو" sizes="148px"></picture><!-- noscript pattern --><noscript><img src="https://cdni.russiatoday.com/media/pics/2022.10/original/633c10b54c59b724f66d2bfb.jpg" alt="الكرملين يعلق على إغلاق كييف باب التفاوض مع موسكو" /></noscript></div>
الرئيس الأوكراني يوقع مرسوما بشأن "رفض أي مفاوضات مع بوتين"
</a></li></ul></div>
Код:
@INLINE {$news_content | preg_replace : '(<div class="(cross\-links|arcticle__read\-more read\-more|article__social\-wrapper|arcticle__read\-more read\-more|read\-more__photo)".*?>[\S\s]*?</div>|<a([\S\s]*?)</a>)iu'}
Цитата:
|
|
|
|
|
|
|
#28 |
|
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
<div class="(cross\-links наступает раньше <a
а в конце </a>также наступает и для <div class="(cross\-links |
|
|
|
|
|
#29 |
|
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
|
|
|
|
|
|
#30 |
|
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
Почему не победить - просто там не верная html разметка, потеряны теги, нужно выполнять отдельно, сначала выполнить замену <a([\S\s]*?)</a>
А потом уже дивы. |
|
|
|
| Сказали спасибо: |
![]() |
| Опции темы | |
|
|
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| РСЯ - Полноэкранный мобильный блок | ziliboba0213 | РСЯ, Google AdSense и Youtube | 25 | 17.03.2022 14:48 |
| Как сделать блок Адсенс 970х250? | Had | РСЯ, Google AdSense и Youtube | 8 | 10.10.2021 21:03 |
| Удалить из текста все div'ы с содержимым | seokotov | Веб-строительство | 19 | 09.01.2021 20:40 |
| Блок ссылок от G | medexpert | Веб-строительство | 28 | 23.12.2020 06:13 |
| Как сделать именно такой блок РСЯ? | Had | РСЯ, Google AdSense и Youtube | 4 | 16.10.2020 10:52 |