如何从bbcode

时间:2016-06-02 09:28:14

标签: php bbcode

这个想法是在某些概述模式下可以看到前80个用户帖子的字符。但是我如何用bbtags做到这一点?

  • 如何不在bbtag中间剪切字符串
  • 如何不打开标签。
  • 我不能忽略那些标签,因为其中一个是扰流板:-)(我可以忽略简单的格式化)

我完全不知道如何做到这一点,快速的谷歌搜索没有帮助。

示例:

Darth Vader [spoiler]is father of luke skywalker[/spoiler]

如果我想要20个字符的子字符串,我想要这个:

Darth Vader [spoiler]is fathe[/spoiler]

1 个答案:

答案 0 :(得分:1)

也许你帮助这个代码,它应该进一步发展,但这个想法应该是明确的:

$str = 'Darth Vader [spoiler]is father of luke skywalker[/spoiler]';

function parse($str, $count)
{
    $arr1 = str_split($str);
    $result = [];
    $i = 0;
    $open = false;
    foreach ($arr1 as $chr)
    {
        if ($open || $chr === '[')
        {
            $open = true;
            if ($chr === ']')
            {
                $result[] = $chr;
                $open = false;
            }
            else
            {
                $result[] = $chr;
            }
        }
        elseif($i <= $count)
        {
            $result[] = $chr;
            $i++;
        }
    }
    return implode($result);
}
echo parse($str, 20);

您必须重写代码,并使用此案例进行测试:&#34;] [&#34;和&#34; [] [[[[[]]] [[]] [[[[&#34;

或选择其他算法,并使用正则表达式....