discuz RSS 全文输出


discuz本身不支持RSS的全文输出
这样想提供订阅给访客就很不方便。

之前看到一个 方法 可以伪全文输出,
输出的内容是帖子的$message,
但这个$message是以discuz代码存储在数据库中的,
比如一个链接,他不是a标签,
而是[url][/url]
感觉应该能用正则来解决,但应该很复杂。

今天猛然想起来,discuz自己有个广播的功能,
可以将帖子的内容输出显示到另外一个页面,
就去看了这个功能的文件,
然后就看到了一大堆的正则表达式。


 $message = str_replace(array(
    '[/color]', '[/backcolor]', '[/size]', '[/font]', '[/align]', '[b]', '[/b]', '[s]', '[/s]', '[hr]',
    '[i=s]', '[i]', '[/i]', '[u]', '[/u]', '[list]', '[list=1]', '[list=a]',
    '[list=A]', "\r\n[*]", '[*]', '[/list]', '[indent]', '[/indent]', '[/float]'
    ), '', preg_replace(array(
    "/\[color=([#\w]+?)\]/i",
    "/\[color=((rgb|rgba)\([\d\s,]+?\))\]/i",
    "/\[backcolor=([#\w]+?)\]/i",
    "/\[backcolor=((rgb|rgba)\([\d\s,]+?\))\]/i",
    "/\[size=(\d{1,2}?)\]/i",
    "/\[size=(\d{1,2}(\.\d{1,2}+)?(px|pt)+?)\]/i",
    "/\[font=([^\[\<]+?)\]/i",
    "/\[align=(left|center|right)\]/i",
    "/\[float=left\]/i",
    "/\[float=right\]/i"
    ), '', $message));

上面是其中的一部分。
想请教一下,这样的话,我应该如何在全文输出$message内容的时候,利用上这些正则表达式呢?

正则表达式 discuz rss

空气化的H音 11 years, 8 months ago

Your Answer