Эй, мне нужно удалить все изображения из строки, и я просто не могу найти правильный способ сделать это.
Вот что я пробовал, но он не работает:
preg_replace("/<img[^>]+\>/i", "(image) ", $content); echo $content;
Есть идеи?
Попробуйте сбросить \
перед >
.
Изменить: я просто проверил ваше регулярное выражение, и он отлично работает. Это то, что я использовал:
<? $content = "this is something with an <img src=\"test.png\"/> in it."; $content = preg_replace("/<img[^>]+\>/i", "(image) ", $content); echo $content; ?>
Результат:
это что-то с (изображением) в нем.
Вам нужно вернуть результат обратно в $content
поскольку preg_replace
не изменяет исходную строку.
$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content);
Я бы предложил использовать метод strip_tags
.
Шон отлично работает, я просто использовал этот код
$content = preg_replace("/<img[^>]+\>/i", " ", $content); echo $content;
// результат – это только обычный текст. Оно работает!!!
Я хотел отобразить первые 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; }
$this->load->helper('security'); $h=mysql_real_escape_string(strip_image_tags($comment));
Если пользовательские входы
<img src = "#">
В таблице базы данных просто вставьте символ this #
Работает на меня
$content = strip_tags($content, '<img>');
является более чистым и простым способом
просто используйте класс form_validation codeigniter:
strip_image_tags($str). $this->load->library('form_validation'); $this->form_validation->set_rules('nombre_campo', 'label', 'strip_image_tags');