Подтвердить что ты не робот

PHP - удалить тег <img> из строки

Эй, мне нужно удалить все изображения из строки, и я просто не могу найти правильный способ сделать это.

Вот что я пробовал, но он не работает:

preg_replace("/<img[^>]+\>/i", "(image) ", $content);
echo $content;

Любые идеи?

4b9b3361

Ответ 1

Попробуйте отбросить \ перед >.

Изменить: я просто проверил ваше регулярное выражение, и он отлично работает. Это то, что я использовал:

<?
    $content = "this is something with an <img src=\"test.png\"/> in it.";
    $content = preg_replace("/<img[^>]+\>/i", "(image) ", $content); 
    echo $content;
?>

Результат:

this is something with an (image)  in it.

Ответ 2

Вам нужно вернуть результат $content, поскольку preg_replace не изменяет исходную строку.

$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content);

Ответ 3

Я бы предложил использовать метод strip_tags.

Ответ 4

Шон отлично работает, я просто использовал этот код

$content = preg_replace("/<img[^>]+\>/i", " ", $content); 
echo $content;

//в результате получается только обычный текст. Он работает!!!

Ответ 5

Я хотел отобразить первые 300 слов новостной истории в качестве предварительного просмотра, что, к сожалению, означало, что если у истории было изображение в первых 300 словах, оно было отображено в списке предварительных просмотров, которые действительно испортили мой макет. Я использовал приведенный выше код, чтобы скрыть все изображения из строки, взятой из моей базы данных, и это прекрасно работает!

$news = $row_latest_news ['content'];
$news = preg_replace("/<img[^>]+\>/i", "", $news); 
if (strlen($news) > 300){
echo substr($news, 0, strpos($news,' ',300)).'...';
} 
else { 
echo $news; 
}

Ответ 6

$this->load->helper('security');
$h=mysql_real_escape_string(strip_image_tags($comment));

Если пользовательские входы

<img src="#">

В таблице базы данных просто вставьте символ this #

Работает для меня

Ответ 7

$content = strip_tags($content, '<img>');

является более чистым и простым способом.

Ответ 8

просто используйте класс form_validation codeigniter:

strip_image_tags($str).

$this->load->library('form_validation');
$this->form_validation->set_rules('nombre_campo', 'label', 'strip_image_tags');