使用preg_match_all來解析附加的bbcode標籤
P粉086993788
P粉086993788 2024-04-02 23:21:39
0
1
496

我有兩種類型的 bbcode: [附件]1234[/附件] [attach=full]1234[/attach]

#
$message = 'this is message with attach [attach=full]1234[/attach]

我想刪除字串中的所有內容並使用:

(preg_match_all('/\[ATTACH((.*?)\](.+?)\[\/ATTACH\]/i', $message, $out, PREG_SET_ORDER))
if (preg_match_all('/\[ATTACH((.*?)\](.+?)\[\/ATTACH\]/i', $message, $out, PREG_SET_ORDER))
{   
    for ($i=0;$i<count($out);$i++)
    {
        $replace_src[] = $out[$i][0];
        $replace_str[] = $out[$i][1];
        $newMessage = str_ireplace($replace_src, $replace_str, $message);
    }
}

此程式碼刪除[attach][/attach],但不刪除[attach=full][/attach] =full 存在於訊息中。

P粉086993788
P粉086993788

全部回覆(1)
P粉138711794

使用preg_replace(),而不是preg_match_all()

使用可選組來匹配 attach 後的可選 =xxx

$newMessage = preg_replace('/\[ATTACH(?:=.*?)?\](.+?)\[\/ATTACH\]/i', '', $message);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板