PHP - удалить тег <img>из строки - PullRequest
54 голосов
/ 10 июля 2009

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

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

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

Есть идеи?

Ответы [ 7 ]

138 голосов
/ 10 июля 2009

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

Редактировать: я только что проверил ваше регулярное выражение, и он отлично работает Вот что я использовал:

<?
    $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.
17 голосов
/ 10 июля 2009

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

$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content);
10 голосов
/ 10 июля 2009

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

7 голосов
/ 12 сентября 2010

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

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

// результат - только текст. Работает !!!

1 голос
/ 26 апреля 2013

Я хотел отобразить первые 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; 
}
0 голосов
/ 02 мая 2015

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

strip_image_tags($str).

$this->load->library('form_validation');
$this->form_validation->set_rules('nombre_campo', 'label', 'strip_image_tags');
0 голосов
/ 25 июня 2014
$this->load->helper('security');
$h=mysql_real_escape_string(strip_image_tags($comment));

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

<img src="#">

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

У меня работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...