0

2 セットの配列を持つカスタム bb コード スクリプトがあります。最初の配列は bb タグのセットで、2 番目の配列は 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>'
        );
4

1 に答える 1

0

この投稿の受け入れられた回答で strlen() を preg パターンと組み合わせます:文字列から BB コードを削除する方法?

HTML の場合は、strip_tags() を使用します。http://www.php.net/manual/en/function.strip-tags.php

于 2013-07-30T05:45:29.497 に答える