娜迦源码博客

怎样把discuz x帖子内容[attach]转换成html

之前用过
{echo discuzcode($value['message'], 0, 0, 0, 1, 1, 0, 0, 0, 0, 0);}
或者
require_once libfile('function/discuzcode');
{echo discuzcode($value['message']);}

能转大部分UBB,但是[attach]转不了。

下面是来自网络的代码,针对attach。
我用的时候做了一些修改。

 

  1. <?php


  2. $thread_info = DB::fetch_first ( "select a.`tid`, a.`authorid`, a.`author`,a.`dateline`, a.`subject`, b.`message`,b.`pid`, c.`attachment` as thumb, c.`remote` from " . DB::table ( 'forum_thread' ) . " a left join " . DB::table ( 'forum_post' ) . " b on b.tid=a.tid left join " . DB::table ( 'forum_threadimage' ) . " c on c.tid=a.tid where b.pid=$pid");

  3. require_once libfile ( 'function/discuzcode' );

  4. $thread_info ['dateline'] = date ( "Y-m-d H:i:s", $thread_info ['dateline'] );

  5. $thread_info ['message'] = discuzcode ( $thread_info ['message'] );

  6. if (preg_match_all ( "/\[attach\](\d+)\[\/attach\]/i", $thread_info ['message'], $matchaids )) {

  7. $attach_ids = $matchaids [1];

  8. }

  9. $attach_list = array ();

  10. foreach ( $attach_ids as $aid ) {

  11. $find = "/\[attach\]$aid\[\/attach\]/i";

  12. $thread_info ['message'] = preg_replace ( $find, get_lw_attach_path ( $aid ), $thread_info ['message'], 1 );

  13. $thread_info ['message'] = preg_replace ( $find, '', $thread_info ['message'] );

  14. }

  15. function get_lw_attach_path($aid) {

  16. global $_G;

  17. $return = $filename = '';

  18. if ($attach = C::t ( 'forum_attachment_n' )->fetch ( 'aid:' . $aid, $aid, array (1,- 1) )) {

  19. return get_lw_attach_path_str ( $attach );

  20. }

  21. return $filename;

  22. }

  23. function get_lw_attach_path_str($attach) {

  24. global $_G;

  25. if (! $attach ['isimage']) {

  26. return '<a href="' . $_G ['siteurl'] . 'forum.php?mod=attachment&aid=' . aidencode ( $attach ['aid'] ) . '">' . $attach ['filename'] . '</a>';

  27. }

  28. if ($attach ['remote']) {

  29. $imgurl = $_G ['setting'] ['ftp'] ['attachurl'] . 'forum/' . $attach ['attachment'];

  30. return '<p><img onclick="viewimage(this);" src="' . $imgurl . '" style="max-width:834px"/></p>';

  31. } else {

  32. if (preg_match ( '/^(?!http:)/', $attach ['url'] )) {

  33. $attach ['url'] = $_G ['siteurl'] . 'data/attachment/forum/' . $attach ['url'];

  34. }

  35. $imgurl = $attach ['url'] . $attach ['attachment'] . ($_G ['gp_width'] ? '&width=' . $_G ['gp_width'] : '') . ($_G ['gp_height'] ? '&height=' . $_G ['gp_height'] : '');

  36. return '<p><a href="' . $imgurl . '" target="_blank"><img height="320" width="320" src="' . $imgurl . '" /></a></p>';

  37. }

  38. }


  39. ?>

复制代码 
条件where b.pid=$pid,如果只调用主题帖内容,改为where a.tid=$tid and b.first=1。
$pid或$tid使用时需要先获得。

在调用帖子内容时,另外涉及到权限问题,如密码、隐藏内容、查看权限、主题售价等等。


本文链接:https://www.wsx6.cn/post/781.html

版权声明:

1:如非特殊说明,本站对提供的源码不拥有任何权利,其版权归原著者拥有。

2:请勿将该源码、软件进行商业交易、转载等行为,该源码、软件只为研究、学习所提供,该软件使用后发生的一切问题与本站无关。

3:本网站所有源码和软件均为作者提供和网友推荐收集整理而来,仅供学习和研究使用。如有侵犯你版权的,请来信(邮箱:393249296@qq.com)指出,本站将立即改正。

联系客服
网站客服 Q交流群
673529708
返回顶部
请先 登录 再评论,若不是会员请先 注册