PHP preg_replace -删除所有文本除了html标签IMG


PHP preg_replace - delete all text except html tags IMG

$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标签外的所有文本内容?

如果你不介意删除换行符,你可以使用这个:

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

删除任何非img标签PHPs strip_tags()更容易:

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

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

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