0

我正在尝试从数据库中的一系列字符串中删除所有图像标签。以下适用于单个图像:(仅供参考 - 字符串中没有其他标签以 结尾/>

 $query = mysql_query("SELECT * FROM events ORDER BY date ASC");
        while($row = mysql_fetch_array($query)){
             $content = $row['text'];
             if(strpos($content, '<img') !== false){
                $point1 = strpos($content, '<img');
                $point2 = strpos($content, '/>');
                $cleaned = substr_replace($content, "", $point1, $point2-1);
              }
                echo $cleaned;
        }

我试图循环多次清理字符串,但无济于事。只是给了我相同的结果,只删除了第一个图像标签:

$query = mysql_query("SELECT * FROM events ORDER BY date ASC");
        while($row = mysql_fetch_array($query)){
             $content = $row['text'];
             if(strpos($content, '<img') !== false){
                $img_ct = substr_count($content, '<img');
                for($i=0;$i<$img_ct;$i++){  
                  $point1 = strpos($content, '<img');                                                            
                  $point2 = strpos($content, '/>');
                  $cleaned = substr_replace($content, "", $point1, $point2-1);
                }
             } 
            echo $cleaned;  
         }

有没有办法在一个线程中删除多个文本部分?循环还是其他?

顺便说一句,这是我的第一个问题。喜欢这个网站。你们都对我帮助很大。

4

1 回答 1

2

你可以使用preg_replace().

if(strpos($content, '<img') !== false) {
     $cleaned = preg_replace('/<img[^>]+\/>/', '', $content);
}
于 2013-08-20T16:39:12.853 回答