regex — отделение медиа от текста с помощью переполнения стека

У меня есть строка, содержащая HTML, составленный в текстовом редакторе. Что-то вроде:

$string ='<img src="http://example.com/image.jpg" alt="alt text" width="1200" height="1650" class="full">
Lorem ipsum <a href="example.com">ergo</a> ipsum';

Другие времена, как:

$string ='<iframe src="http://example.com/" width="1200" height="1650" class="full"></iframe>
<b>Lorem ipsum <a href="example.com">ergo</a> ipsum</b>'

Каким-то образом мне нужно разделить мультимедиа и текст на отдельные, но мне не разрешено изменять способ ввода содержимого в строку.

В идеале я бы ограничил все медиа в отдельном поле, но я не могу сделать это по нескольким причинам.

Я пытаюсь что-то решить с помощью регулярных выражений, но я не могу заставить его работать.

Самым близким, что я получил, было удаление тегов, но это не избавляет от текста:

echo '<div class="media">'.strip_tags($sting, '<img><iframe>').'</div><br>';
echo '<div class="text">'.strip_tags($string, '<p><a><b><stong>').'</div>';

Есть идеи? Там может быть действительно четкое решение там ..

0

Решение

Не был уверен, что под медиа вы подразумевали значение параметра src или тип тега, но вот регулярное выражение для любого из них:

// result will be in $matches[1][0]
preg_match_all( '/src=\"(.*)\"/sU', $string, $matches );
preg_match_all( '/<(img|iframe)\s/sU', $string, $matches );
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]