2011-05-07 104 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

相關問題