开发者

PHP: replace string from a particular string to a particular string

How can I replace a string from a particular string? Please see my example below.

$开发者_开发问答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\">";

Now my expected out put is = <b>Man one</b> and <b>man two</b>. only the image tag should be deleted.

So I have to cut the full string from "<img" to ">" from string $string_value. So how can I cut the full string between "<img" to ">" using preg_replace or anything else.

The replacing parameter should be blank space.


Looks like you want to strip the tags.
You can do it easily by calling the function strip_tags which gets HTML and PHP tags stripped from a given string.

$string_value = strip_tags($string_value);

EDIT:

Since you want to strip only the <img tag, you can make use of this 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;
}

and call it as:

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

Working link


You can use regular expressions to exclude IMG tags:

<?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);
?>


Just use strip_tags($string_value); and you will get your desired output.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜