Rumah > Soal Jawab > teks badan
Saya mempunyai dua jenis bbcode:
[附件]1234[/附件]
[attach=full]1234[/attach]
$message = 'this is message with attach [attach=full]1234[/attach]
Saya mahu mengeluarkan semua dalam rentetan dan gunakan:
(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); } }
Kod ini memadamkan [attach][/attach], tetapi bukan [attach=full][/attach]
=full
Berada dalam mesej.
P粉1387117942024-04-03 16:14:32
Gunakan preg_replace()
,而不是preg_match_all()
.
Gunakan kumpulan pilihan untuk dipadankan attach
后的可选 =xxx
.
$newMessage = preg_replace('/\[ATTACH(?:=.*?)?\](.+?)\[\/ATTACH\]/i', '', $message);