2010-10-10 242 views
1

如何从特定字符串替换字符串?请看下面的例子。PHP:将字符串从特定字符串替换为特定字符串

$string_value="<b>Man one</b> <img src=\"http://www.abc.com/image1.jpg\">and <b>Man two</b> <img src=\"http://www.abc.com/img2.png\">"; 

现在我的预期输出是= <b>Man one</b> and <b>man two</b>.只应该删除图像标记。

所以我必须从字符串$ string_value中将整个字符串从"<img"剪切为">"。 那么如何使用preg_replace或其他任何方法将"<img"">"之间的整个字符串剪切掉。

替换参数应该是空白。

回答

1

您可以使用正则表达式来排除IMG标签:

<?php 
$text = "Man one <img src=\"http://www.abc.com/image1.jpg\">and Man two <img src=\"http://www.abc.com/img2.png\">"; 
$pattern = "/<img(.*?)>/i"; 
$replace = ''; 
print preg_replace($pattern,$replace,$text); 
?> 
+0

谢谢,它的作品,我想这东西.thnaks Kiselovs。 – riad 2010-10-10 05:56:03

1

只需使用用strip_tags($ STRING_VALUE);你会得到你想要的输出。

+0

谢谢,这works.But我需要删除img标签only.Because我有没有提到的许多其他的HTML标签我example.so,是他们没有办法删除IMA标签只是我提?请回答 – riad 2010-10-10 05:39:56

+0

@riad:'strip_tags'采用指定允许变量的附加参数,只传递包含了所有你想要的标签为字符串允许。 – casablanca 2010-10-10 05:46:01

+0

@亲爱的kiselovs,thx。我得到this.their有许多其他的html tags.so它不足以包括所有的标签。我只需要替换img标签,所以请帮助我删除图片标签只....x再次..日期 – riad 2010-10-10 05:48:49

2

看起来你想要去除的标签。
您可以通过调用函数strip_tags后者从给定的字符串剥离HTMLPHP标签很容易做到这一点。

$string_value = strip_tags($string_value); 

编辑:

既然你想要去除只有<img标签,你可以利用这个function的:

function strip_only($str, $tags) { 
     if(!is_array($tags)) { 
       $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags)); 
       if(end($tags) == '') array_pop($tags); 
     } 
     foreach($tags as $tag) $str = preg_replace('#</?'.$tag.'[^>]*>#is', '', $str); 
     return $str; 
} 

,并称呼其为:

$string_value = strip_only($string_value,'img'); 

Working link

+0

谢谢,它works.But我只需要删除img标签。因为我有很多其他的html标签,我没有提到我的example.so,是他们的任何方式来删除ima标签只有我提到??请回复 – riad 2010-10-10 05:40:32

+0

' string strip_tags(string $ str [,string $ allowable_tags])'你可以允许你想要的标签。 – 2010-10-10 05:43:17

+0

再次THX兄弟,但我有对string.Basically我需要更换img标签only.so请帮助去除仅img标签其他许多HTML标签...... THX再次 – riad 2010-10-10 05:46:35