@Bestolkovy

Как составить регулярное выражение?

Добрый день!

Помогите, пожалуйста, составить регулярное выражение для PHP, чтобы вырезать все теги br внутри тега style.

Делаю так, но, не работает:

add_filter( 'the_content', function( $content ) {
  return preg_replace( '/<style>([\s\S]*?)<br>([\s\S]*?)<\/style>/iU', '<style>$1$2</style>', $content );
});
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
ProjectSoft
@ProjectSoft
Front-end && Back-end разработчик
<?php
$content = "<style>
.plainborder {<br />
  border: 1px solid #213A32;<br>
  background-color: #213A32;<br>
}<br>
.tableborder {<br>
  border: 1px solid #213A32;<br>
  background-color: #213A32;<br>
  padding: 0;<br>
  margin: 0;<br>
}<br>
.tablefill {<br>
  border: 1px solid #213A32;<br>
  background-color: #213A32;<br>
  padding: 6px;<br>
}<br>
.tablepad {<br>
  background-color: #4C5D55;<br>
  padding: 6px;<br>
}<br>
.tablebasic {<br>
  width: 100%;<br>
  padding: 0px 0px 0px 0px;<br>
  margin: 0px;<br>
  border: 0px;<br>
}<br>
.wrapmini {<br>
  float: left;<br>
  line-height: 1.5em;<br>
  width: 26%;<br>
}<br>
.pagelinks {<br>
  float: left;<br>
  line-height: 1.2em;<br>
  width: 35%;<br>
}<br>
.desc {<br>
  font-size: 10px;<br>
  color: #CDCDCD;<br>
}<br>
.edit {<br>
  font-size: 9px;<br>
}
</style>
<div>
LLLLLLLLLLL
</div>
<style>
.plainborder {<br />
  border: 1px solid #213A32;<br>
  background-color: #213A32;<br>
}<br>
.tableborder {<br>
  border: 1px solid #213A32;<br>
  background-color: #213A32;<br>
  padding: 0;<br>
  margin: 0;<br>
}<br>
.tablefill {<br>
  border: 1px solid #213A32;<br>
  background-color: #213A32;<br>
  padding: 6px;<br>
}<br>
.tablepad {<br>
  background-color: #4C5D55;<br>
  padding: 6px;<br>
}<br>
.tablebasic {<br>
  width: 100%;<br>
  padding: 0px 0px 0px 0px;<br>
  margin: 0px;<br>
  border: 0px;<br>
}<br>
.wrapmini {<br>
  float: left;<br>
  line-height: 1.5em;<br>
  width: 26%;<br>
}<br>
.pagelinks {<br>
  float: left;<br>
  line-height: 1.2em;<br>
  width: 35%;<br>
}<br>
.desc {<br>
  font-size: 10px;<br>
  color: #CDCDCD;<br>
}<br>
.edit {<br>
  font-size: 9px;<br>
}
</style>";
echo preg_replace_callback("/<style>(.+)<\/style>/Usi", "styleClean", $content);
function styleClean($matches){
  return "<style>".preg_replace("/(<br(\s+)?\/?>)/Usi", "", $matches[1])."</style>";
}
?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы