Как я могу заменить строку из определенной строки? См. Мой пример ниже.
$string_value="<b>Man one</b> <img src=\"http://img.ruphp.com/string/image1.jpg\">and <b>Man two</b> <img src=\"http://img.ruphp.com/string/img2.png\">";
Теперь мой ожидаемый результат = <b>Man one</b> and <b>man two</b>.
только тег изображения должен быть удален.
Поэтому мне нужно вырезать полную строку из "<img"
в ">"
из строки $ string_value. Итак, как я могу отрезать полную строку между "<img"
до ">"
используя preg_replace или что-то еще.
Заменяющий параметр должен быть пустым.
Вы можете использовать регулярные выражения для исключения тегов IMG:
<?php $text = "Man one <img src=\"http://img.ruphp.com/string/image1.jpg\">and Man two <img src=\"http://img.ruphp.com/string/img2.png\">"; $pattern = "/<img(.*?)>/i"; $replace = ''; print preg_replace($pattern,$replace,$text); ?>
Похоже, вы хотите разбить теги.
Вы можете сделать это легко, вызвав функцию strip_tags
которая получает HTML
и PHP
теги, strip_tags
из заданной строки.
$string_value = strip_tags($string_value);
РЕДАКТИРОВАТЬ:
Поскольку вы хотите удалить только тег <img
, вы можете использовать эту функцию :
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');
Рабочая ссылка
Просто используйте strip_tags ($ string_value); и вы получите желаемый результат.