Эй, мне нужно удалить все изображения из строки, и я просто не могу найти правильный способ сделать это.
Вот что я пробовал, но он не работает:
preg_replace("/<img[^>]+\>/i", "(image) ", $content);
echo $content;
Любые идеи?
Эй, мне нужно удалить все изображения из строки, и я просто не могу найти правильный способ сделать это.
Вот что я пробовал, но он не работает:
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;
?>
Результат:
this is something with an (image) in it.
Вам нужно вернуть результат $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');