第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何清理重復(fù)的 BB 標(biāo)簽

如何清理重復(fù)的 BB 標(biāo)簽

PHP
炎炎設(shè)計(jì) 2021-11-05 15:56:52
[i][b][i][b](This is a paragraph with BBcode.)[/b][/i][/b][/i]我的一些 BB 代碼有雙標(biāo)簽,刪除它的最佳方法是什么?我已經(jīng)嘗試了一些主要是正則表達(dá)式的東西,但老實(shí)說,我是正則表達(dá)式的新手。
查看完整描述

3 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊

這絕對是可怕的,但它有效。


<?php


$bb = '[i][b][i][b](This is a paragraph with BBcode.)[/b][/i][/b][/i]';


// regex with start, paragraph, and end capture groups

$regex = '#(?<start>(\[[a-z]*\])*+)(?<paragraph>.*)(?<end>(\[\/[a-z]*\])*+)#U';


// put matches into $matches array

preg_match_all($regex, $bb, $matches);


// get the stuff we need

$start = $matches['start'][0];         // string(12) "[i][b][i][b]"

$paragraph = implode('', $matches['paragraph']);


// now we will grab each tag

$regex = '#\[(?<tag>[a-z])\]#';

preg_match_all($regex, $start, $matches);

$tags = array_unique($matches['tag']);


// and build up the new string

$newString = '';

foreach($tags as $tag) {

    $newString .= '[' . $tag . ']';

}


// create the end tags

$end = str_replace('[', '[/', $newString);


// put it all together

$newString .= $paragraph . $end;


echo $newString; // [i][b](This is a paragraph with BBcode.)[/i][/b]

這給你 [i][b](This is a paragraph with BBcode.)[/i][/b]


在此處查看https://3v4l.org/O8UHO


查看完整回答
反對 回復(fù) 2021-11-05
?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個贊

您可以嘗試使用正則表達(dá)式(可能像/\[.*\]/U)提取所有標(biāo)簽,然后遍歷它們,刪除所有重復(fù)項(xiàng)


快速示例:


$bb = '[i][b][i][b](This is a paragraph with BBcode.)[/b][/i][/b][/i]';


preg_match_all('/(\[.*\])/gU', $bb, $tags);


$metTags = [];

foreach($tags[0] as $tag) {

    // tag has not been met, save it

    if (in_array($tag, $metTags) === false) {

        $metTags[] = $tag;

    // tag have been met already

    } else {

        // remove it ONCE

        $bb = preg_replace('#'.preg_quote($tag).'#', '', $bb, 1);

    }

}


echo $bb;

由于 preg_replace() 的使用,這可能不是最好的解決方案,但仍然做得很好。


編輯:添加代碼


查看完整回答
反對 回復(fù) 2021-11-05
?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個贊

所以我只用 php 寫了一個冗長的方法。它基本上遍歷所有字符,然后當(dāng)我找到“[”時,我會檢查其余的是否接受標(biāo)簽。我最終得到了一個包含所有樣式的數(shù)組,只有文本允許我刪除重復(fù)的樣式。會顯示代碼但不想被嘲笑:D


查看完整回答
反對 回復(fù) 2021-11-05
  • 3 回答
  • 0 關(guān)注
  • 214 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號