У меня возникли проблемы с разработкой, как это сделать, у меня строка выглядит примерно так …
$text = "<p>This is some example text This is some example text This is some example text</p> <p><em>This is some example text This is some example text This is some example text</em></p> <p>This is some example text This is some example text This is some example text</p>"; Я в основном хочу использовать что-то вроде preg_repalce и regex для удаления
 <em>This is some example text This is some example text This is some example text</em> 
  Поэтому мне нужно написать некоторый PHP-код, который будет искать открытие <em> и закрытие </em> и удалить весь текст между ними 
надеюсь кто-то может помочь, спасибо.
В случае, если вы заинтересованы в решении без регулярного выражения, следующее:
 <?php $text = "<p>This is some example text This is some example text This is some example text</p> <p><em>This is some example text This is some example text This is some example text</em></p> <p>This is some example text This is some example text This is some example text</p>"; $emStartPos = strpos($text,"<em>"); $emEndPos = strpos($text,"</em>"); if ($emStartPos && $emEndPos) { $emEndPos += 5; //remove <em> tag aswell $len = $emEndPos - $emStartPos; $text = substr_replace($text, '', $emStartPos, $len); } ?> 
Это приведет к удалению всего содержимого между теги.
 $text = preg_replace('/([\s\S]*)(<em>)([\s\S]*)(</em>)([\s\S]*)/', '$1$5', $text); 
 $text = '<p>This is some example text This is some example text This is some example text</p> <p><em>This is the em text</em></p> <p>This is some example text This is some example text This is some example text</p>'; preg_match("#<em>(.+?)</em>#", $text, $output); echo $output[0]; // This will output it with em style echo '<br /><br />'; echo $output[1]; // This will output only the text between the em 
[ Просмотр вывода ]
  Чтобы этот пример работал, я немного изменил содержимое <em></em> , в противном случае весь текст будет таким же, и вы не сможете понять, работает ли скрипт. 
  Однако, если вы хотите избавиться от <em> и не получать содержимое: 
 $text = '<p>This is some example text This is some example text This is some example text</p> <p><em>This is the em text</em></p> <p>This is some example text This is some example text This is some example text</p>'; echo preg_replace("/<em>(.+)<\/em>/", "", $text); 
[ Просмотр вывода ]
Используйте strrpos, чтобы найти первый элемент, а затем последний элемент. Используйте substr, чтобы получить часть строки. А затем замените подстроку пустой строкой из исходной строки.
  format: $text = str_replace('<em>','',$text); $text = str_replace('</em>','',$text);