2011-05-07 88 views
2
$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标记之外的所有文本内容?Рhppreg_replace - 删除除html标记以外的所有文本IMG

回答

3

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

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

很酷,它的工作! )) 谢谢你,兄弟! – Max 2011-05-07 00:43:26

2

要去除任何非IMG标签PHP的strip_tags()会更容易:

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

删除只是文字很麻烦,而且它更容易提取比删除在这种情况下:

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

我认为他试图取代所有的公司除标签之外的其他内容。这是相反的。 – 2011-05-07 00:38:22

+0

确实。他希望文本内容消失了......那需要一个额外的正则表达式。 – mario 2011-05-07 00:40:30

相关问题