在 PHPBB 中启用 HTML 标签

发布于 2024-09-24 10:40:22 字数 1456 浏览 2 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

童话里做英雄 2024-10-01 10:40:22

开箱即用不支持此功能。您应该使用自定义 BBCode。如果您真的非常坚持使用 HTML 标签,您可以使用 启用 HTML< /a> MOD。

This is not supported out of the box. You should use custom BBCodes instead. If you really, really insist on HTML tags, you can use the Enable HTML MOD.

墨落成白 2024-10-01 10:40:22

最近我正忙着将基于 Snitz 2.x 的论坛移植到 phpbb3 论坛。
我必须应对的主要挑战是帖子正文中的 HTML 支持。
Snitz 允许帖子正文中包含 HTML,但 phpbb3 禁止帖子中的 HTML 标签。
由于我们有大约 40000 篇帖子,其中许多都包含 HTML 标签,我们必须为此找到解决方案。
如下:
我们使用启用 HTML MOD 但是我们修改它。
原始功能:

function enable_html($text, $uid)
{
    if (strpos($text, '[html') === false)
    {
        return $text;
    }

    $text = str_replace(array('[html:' . $uid . ']', '[/html:' . $uid . ']'), array('[html]', '[/html]'), $text);

    $text_ary = explode('[html]', $text);
    $text = '';
    foreach ($text_ary as $tmp)
    {
        if (strpos($tmp, '[/html]'))
        {
            $tmp = explode('[/html]', $tmp, 2);
            $text .= htmlspecialchars_decode(str_replace(array("\r\n", "\n"), ' ', $tmp[0])) . $tmp[1];
        }
        else
        {
            $text .= $tmp;
        }
    }

    return str_replace(array('[html]', '[/html]'), '', $text);
}

修改为

function enable_html($text, $uid)
{
    return htmlspecialchars_decode($text);
}

最后一步是向用户授予新权限,我们得到了渲染的 HTML,就像在 Snitz 中一样。

Lately I was busy porting Snitz 2.x based forum to phpbb3 forum.
The main challenge I had to deal with was around HTML support in the post body.
Snitz allowed HTML inside the post body but phpbb3 forbids HTML tags inside the post.
Since we have ~40000 posts that many of them contains HTML tags we had to find a solution for this.
Here it is:
we used Enable HTML MOD but we modify it.
The original function:

function enable_html($text, $uid)
{
    if (strpos($text, '[html') === false)
    {
        return $text;
    }

    $text = str_replace(array('[html:' . $uid . ']', '[/html:' . $uid . ']'), array('[html]', '[/html]'), $text);

    $text_ary = explode('[html]', $text);
    $text = '';
    foreach ($text_ary as $tmp)
    {
        if (strpos($tmp, '[/html]'))
        {
            $tmp = explode('[/html]', $tmp, 2);
            $text .= htmlspecialchars_decode(str_replace(array("\r\n", "\n"), ' ', $tmp[0])) . $tmp[1];
        }
        else
        {
            $text .= $tmp;
        }
    }

    return str_replace(array('[html]', '[/html]'), '', $text);
}

was modified to

function enable_html($text, $uid)
{
    return htmlspecialchars_decode($text);
}

The last step was to give the new permission to the users and we got the HTML rendered as we had it in Snitz.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文