Я пытаюсь написать preg_replace, который очистит все свойства тегов разрешенных тегов и все теги, которые не существуют в разрешенном списке.Очистка содержимого внутри html-тегов
Basic ПРИМЕР- это:
<p style="some styling here">Test<div class="button">Button Text</div></p>
бы оказаться:
<p>test</p>
Я это работает хорошо .. для IMG-теги и теги A HREF исключением. Мне не нужно очищать свойства img и тегов. Возможно, другие. Я не был уверен, есть ли способ установить два списка разрешений?
1) Один список тегов, которые можно оставить после очистки
2) Один список для тегов, которые разрешены, но оставлены в покое?
3) Остальные удаляются.
Вот сценарий, я работаю над:
$string = '<p style="width: 250px;">This is some text<div class="button">This is the button</div><br><img src="waves.jpg" width="150" height="200" /></p><p><b>Title</b><br>Here is some more text and <a href="#" target="_blank">this is a link</a></p>';
$output = strip_tags($string, '<p><b><br><img><a>');
$output = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i", '<$1$2$3$4$5>', $output);
echo $output;
Этот скрипт должен очистить $ строку быть:
<p>This is some text<br><img src="waves.jpg" width="150" height="200" /></p><p><b>Title</b><br>Here is some more text and <a href="#" target="_blank">this is a link</a></p>
Использование DOM парсер. – Brad
Пожалуйста, воздержитесь от разбора HTML с помощью RegEx, поскольку он [приведет вас в į̷̷͚̤̤̖̦͍͗̒̈̅̄n̨͖͓̹͍͎͔͈̝͐ͪ͛̄͛ṣ̷̵̞̦ͤ̅̉̋ͪ͑͛ͥ͜a̷̘͖̮͔͎͛̇̏̒͆̆͘n͇͔̤̼͙̩͖̭ͤ͋̉͌͟eͥ͒͆ͧͨ̽͞҉̹͍̳̻͢] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454). Вместо этого используйте [HTML-парсер] (http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php). – bwoebi
Любые предложения относительно того, какой и, возможно, простой пример кода? Я ссылался на ссылки, которые вы поместили, но есть так много информации и так много вариантов, которые я просто потерял ... Кажется, что эти парсеры должны получать информацию между тегами элементов. Я не пытаюсь это сделать (если я не понимаю). Я пытаюсь очистить свойства в открывающем теге. – John