Verwenden Sie preg_match_all, um zusätzliche BBcode-Tags zu analysieren
P粉086993788
P粉086993788 2024-04-02 23:21:39
0
1
442

Ich habe zwei Arten von BBcode: [附件]1234[/附件] [attach=full]1234[/attach]

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

Ich möchte alles in der Zeichenfolge entfernen und verwenden:

(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);
    }
}

Dieser Code löscht [attach][/attach], aber nicht [attach=full][/attach] =full Seien Sie in der Nachricht.

P粉086993788
P粉086993788

Antworte allen(1)
P粉138711794

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

使用可选组来匹配 attach 后的可选 =xxx

$newMessage = preg_replace('/\[ATTACH(?:=.*?)?\](.+?)\[\/ATTACH\]/i', '$1', $message);
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!