【问题标题】:Print data with bbcode from database to HTML使用 bbcode 将数据从数据库打印到 HTML
【发布时间】:2014-12-20 08:02:50
【问题描述】:

我有一个 textarea 表单,支持 BBcode,表单上的文本使用 PHP 保存在我的数据库中,一切正常。
但是当我尝试从我的数据库中打印数据时,我得到了这个:
[b]你好[/b]
而不是这个:
你好

这是我从数据库打印的方式:

$sql = mysql_query("SELECT * FROM BlogData ORDER BY id DESC");
while($row = mysql_fetch_array($sql)){
$content = $row['content'];

echo nl2br($content);

我应该怎么做才能看到我真正想要的文字?

【问题讨论】:

    标签: php html database parsing bbcode


    【解决方案1】:
    $regex = array(
      '/\[b\](.*?)\[\/b\]/is' => '<b>$1</b>',
      '/\[i\](.*?)\[\/i\]/is' => '<i>$1</i>',
      '/\[u\](.*?)\[\/u\]/is' => '<u>$1</u>',
      '/\[s\](.*?)\[\/s\]/is' => '<strike>$1</strike>',
      '/\[sup\](.*?)\[\/sup\]/is' => '<sup>$1</sup>',
      '/\[sub\](.*?)\[\/sub\]/is' => '<sub>$1</sub>',
      '/\[color=#([0-9A-F]{6})\](.*?)\[\/color\]/is' => '<font color="#$1">$2</font>',
      '/\[left\](.*?)\[\/left\]/is' => '<p style="text-align:left">$1</p>',
      '/\[center\](.*?)\[\/center\]/is' => '<p style="text-align:center">$1</p>',
      '/\[right\](.*?)\[\/right\]/is' => '<p style="text-align:right">$1</p>',
      '/\[quote\](.*?)\[\/quote\]/is' => '<div class="quote"><span>$1</span></div>'
      );
    $sql = mysql_query("SELECT * FROM BlogData ORDER BY id DESC");
    while($row = mysql_fetch_array($sql)){
    
    $content = preg_replace(array_keys($regex), array_values($regex), $row['content']);
    
    echo nl2br($content);
    }
    

    【讨论】:

    • 完美运行,你知道我可以复制/粘贴所有 BBcode 的地方吗?我会尝试自己做一些,但如果你知道,请告诉我!
    猜你喜欢
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多