PHP – 从string中删除<img>标签
嘿,我需要删除一个string中的所有图像,我只是找不到正确的方法来做到这一点。
这是我尝试的,但它不工作:
preg_replace("/<img[^>]+\>/i", "(image) ", $content); echo $content;
有任何想法吗?
尝试删除\
的前面。
编辑:我只是testing你的正则expression式,它工作正常。 这是我用过的:
<? $content = "this is something with an <img src=\"test.png\"/> in it."; $content = preg_replace("/<img[^>]+\>/i", "(image) ", $content); echo $content; ?>
结果是:
这是一个(图像)的东西。
您需要将结果指定回$content
因为preg_replace
不会修改原始string。
$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content);
我会build议使用strip_tags
方法。
肖恩它工作正常,我刚刚使用这个代码
$content = preg_replace("/<img[^>]+\>/i", " ", $content); echo $content;
//结果只是纯文本。 有用!!!
我想把一个新闻故事的前300个单词作为预览显示,不幸的是,如果一个故事在前300个单词中有一个图像,那么它显示在与我的布局真正混淆的预览列表中。 我用上面的代码来隐藏从我的数据库中获取的string的所有图像,它奇妙地工作!
$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));
如果用户input
<img src =“#”>
在数据库表中插入字符这个#
为我工作
$content = strip_tags($content, '<img>');
是一个更清洁和简单的方法
只需使用codeigniter的form_validation类:
strip_image_tags($str). $this->load->library('form_validation'); $this->form_validation->set_rules('nombre_campo', 'label', 'strip_image_tags');