PHP:将特定字符串中的字符串替换为特定字符串

时间:2010-10-10 05:31:54

标签: php string

如何从特定字符串替换字符串?请参阅下面的示例。

$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"">"之间剪切完整的字符串。

替换参数应为空格。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

答案 2 :(得分: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);
?>