用php分隔媒体与文本

时间:2014-11-21 17:52:39

标签: php regex text element media

我有一个字符串,其中包含在文本编辑器中组成的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>';

任何见解?那里可能有一个非常明确的解决方案..

1 个答案:

答案 0 :(得分: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 );