小技巧系列:正則匹配img標籤

bestcyt發表於2021-02-01

背景:

做論壇之類的一般都會有發帖回帖的功能,那麼當使用者複製了其他網站的文章的時候,文章的圖片就是其他網址的了,這樣難保不會有涉及到黃賭毒之類敏感的圖片,所以很多時候,只能上傳在自己論壇相簿的圖片會安全點,所以要對複製的站外圖片進行過濾。

程式碼:

$whiteList = [];//網站白名單,當是兄弟網站的時候就不過濾
$pregRule = "/<[img|IMG].*? src=[\'|\"](.*?)[\'|\"].*?[\/]?>/";
preg_match_all($pregRule, $content, $array, PREG_PATTERN_ORDER);
foreach($array[1] as $index => $src){
    $isWai = true;
    foreach($whiteList as $white){
        if(strpos($src,$white) !== false){
            $isWai = false;
            break;
        }
    }
    if ($isWai){
        $content = str_replace($array[0][$index], '<img alt="[外部圖片]">', $content);
    }
}
$array[1]的內容是多個src地址;$array[0]是多個img標籤的html

有什麼不對或有疑問的地方請大佬們指正:):blush:

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章