如何在没有bbcode标签的情况下获得字符串的长度?

时间:2013-07-30 03:37:44

标签: php bbcode string-length

我有一组带有两组数组的自定义bb代码脚本。第一个数组是bb标记的集合,第二个是html标记。我想找到用户帖子的长度,但不包括标签的内容。例如,[b] Hello,world![/ b]的长度为12,因为标签内有字符串。像[img] http://www.mydomain.com/images/myimage.gif [/ img]这样的东西就是0。

我想找到这个,因为我希望有一个“体验点”系统,用户可以通过XP获得线程和回复,但我不希望他们为这样的标签赚取积分。

$find = array(
            "'\[b\](.*?)\[/b\]'is",
            "'\[i\](.*?)\[/i\]'is",
            "'\[u\](.*?)\[/u\]'is",
            "'\[s\](.*?)\[/s\]'is",
            "'\[img\](.*?)\[\/img\]'is",
            "'\[url\](.*?)\[/url\]'i",
            "'\[url=(.*?)\](.*?)\[/url\]'i",
            "'\[link\](.*?)\[/link\]'i",
            "'\[link=(.*?)\](.*?)\[/link\]'i",
            "'\[h1\](.*?)\[\/h1\]'is",
            "'\[h2\](.*?)\[\/h2\]'is",
            "'\[h3\](.*?)\[\/h3\]'is",
            "'\[ul\](.*?)\[\/ul\]'is",
            "'\[li\](.*?)\[\/li\]'is",
            "'\[p\](.*?)\[\/p\]'is"
        );

        $replace = array(
            '<strong>\1</strong>',
            '<em>\1</em>',
            '<u>\1</u>',
            '<s>\1</s>',
            '<img src="\1" \1alt="User Image" />',
            '<a href="\1">\1</a>',
            '<a href="\1">\2</a>',
            '<a href="\1">\1</a>',
            '<a href="\1">\2</a>',
            '<h1>\1</h1>',
            '<h2>\1</h2>',
            '<h3>\1</h3>',
            '<ul>\1</ul>',
            '<li>\1</li>',
            '<p>\1</p>'
        );

1 个答案:

答案 0 :(得分:0)

将strlen()与此帖子的接受答案中的preg模式结合起来:How to remove BB codes from a string?

对于HTML,请使用strip_tags()。 http://www.php.net/manual/en/function.strip-tags.php