PHP preg_replace - 删除除html标签IMG以外的所有文本

时间:2011-05-07 00:26:07

标签: php text preg-replace image

$var = "text<img src='/img/tag1.gif' alt='' />
text text text text text <i>-blah-blah-blah-blah-blah-blah</i> 
<img src='/img/tag2.gif' alt='' />
<img src='/img/myhome.gif' alt='' />
<b>text</b> text text blah-blah-blah-blah-blah-blah-blah-blah 
<img src='/img/age.gif' alt='' />";

$var = preg_replace('/(<img(.+?)>)/i', '', $var);

echo $var;

本文中如何替换除IMG标签以外的所有文本内容?

2 个答案:

答案 0 :(得分:3)

如果您不介意删除换行符,可以使用以下内容:

<?php
$var = preg_replace('#.*?(<img.+?>).*?#is', '$1', $var);

答案 1 :(得分:2)

要删除任何非img标签,PHP strip_tags()会更容易:

$var = strip_tags($var, "<img>");

仅删除文本很麻烦,在这种情况下,提取比删除要容易得多:

preg_match_all('#<img\b[^>]*>#', $var, $match);
$var = implode("\n", $match[0]);