【问题标题】:PHP preg_replace - delete all text except html tags IMGPHP preg_replace - 删除除 html 标签 IMG 之外的所有文本
【发布时间】:2011-05-07 00:26:06
【问题描述】:
$var = "text<img src='/img/tag1.gif' alt='' />
text text text text text <i>-blah-blah-blah-blah-blah-blah</i> 
<img src='/img/tag2.gif' alt='' />
<img src='/img/myhome.gif' alt='' />
<b>text</b> text text blah-blah-blah-blah-blah-blah-blah-blah 
<img src='/img/age.gif' alt='' />";

$var = preg_replace('/(<img(.+?)>)/i', '', $var);

echo $var;

如何在这段文字中替换除IMG标签以外的所有文字内容?

【问题讨论】:

    标签: php text preg-replace image


    【解决方案1】:

    如果你不介意删除换行符,你可以使用这个:

    <?php
    $var = preg_replace('#.*?(<img.+?>).*?#is', '$1', $var);
    

    【讨论】:

      【解决方案2】:

      去除任何非 img 标签 PHPs strip_tags() 会更容易:

      $var = strip_tags($var, "<img>");
      

      只删除文本很麻烦,在这种情况下提取比删除容易得多:

      preg_match_all('#<img\b[^>]*>#', $var, $match);
      $var = implode("\n", $match[0]);
      

      【讨论】:

      • 我认为他正在尝试替换除 标签之外的所有内容。这恰恰相反。
      猜你喜欢
      • 2012-01-10
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多