Inhaltsverzeichnis
回复讨论(解决方案)
Heim Backend-Entwicklung PHP-Tutorial 论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来

论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来

Jun 23, 2016 pm 01:57 PM
discuz 内容 ganz

论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来。


主题容易读出来forum_thread表就行了,但容易表forum_post里的内容不容易读出来呀。

毕竟里面含有[attach]4[/attach][img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]

等,杂七杂八的数据。

人家官方不交流代码,只交流怎样安装。我晕倒了。只能想到CSDN来了,看看有人能不能搞定这个。


回复讨论(解决方案)

论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来。


主题容易读出来forum_thread表就行了,但容易表forum_post里的内容不容易读出来呀。

毕竟里面含有[attach]4[/attach][img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]

等,杂七杂八的数据。

人家官方不交流代码,只交流怎样安装。我晕倒了。只能想到CSDN来了,看看有人能不能搞定这个。


人家的代码本身就含有一个这样的转换函数

@chinmo 版主

关键是我找到discuzcode()、parseattach()解析函数后,似乎没用。目前还在找原因。

@chinmo 版主

关键是我找到discuzcode()、parseattach()解析函数后,似乎没用。目前还在找原因。


晕死,你直接到他的帖子内容页去找不就知道他用的什么函数了?这还纠结什么

@chinmo

大版主呀,帖子内容应该是source\module\forum\forum_viewthread.php这个文件

可我找来找去,感觉就只有这两个函数相关。但还没有起到作用。

找了两天,晕死

@chinmo

大版主呀,帖子内容应该是source\module\forum\forum_viewthread.php这个文件

可我找来找去,感觉就只有这两个函数相关。但还没有起到作用。

找了两天,晕死


你再他模板找干嘛,DZ的他基本都是用$post这个数组保存数据的,你在他的控制器文件里输出这个数组就知道是哪个字段保存着文章内容了,然后你在在他的控制器里查找他对这个字段所用的处理函数不就可以了

做程序这点最起码的查找能力应该有的吧

@chinmo

大版主呀,我肯定不会去模板层找了,真的没有你想象的那么简单,我用的是discuz X3.1utf8版本。

帖子内容应该是source\module\forum\forum_viewthread.php这个文件

大概903行左右:
parseattach($_G['forum_attachpids'], $_G['forum_attachtags'], $postlist, $skipaids);

用来解析附件的。

大概是在1228行:
        $post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'] & 1, $_G['forum']['allowsmilies'], $forum_allowbbcode, ($_G['forum']['allowimgcode'] && $_G['setting']['showimages'] ? 1 : 0), $_G['forum']['allowhtml'], ($_G['forum']['jammer'] && $post['authorid'] != $_G['uid'] ? 1 : 0), 0, $post['authorid'], $_G['cache']['usergroups'][$post['groupid']]['allowmediacode'] && $_G['forum']['allowmediacode'], $post['pid'], $_G['setting']['lazyload'], $post['dbdateline'], $post['first']);

用来解析内容的

但不晓得为什么就是不成功。

discuzcode 就是了用的这个函数
不成功的话
最简单的排查就是在这个函数里断句输出,看看他在那里替换不成功

这样也可以找出你具体是在什么环节上弄错了

各路PHP牛人,我把代码奉上:
define('APPTYPEID', 2);
define('CURSCRIPT', 'forum');

require './source/class/class_core.php';
require './source/function/function_forum.php';

$cachelist = array();
C::app()->cachelist = $cachelist;
C::app()->init();



//$navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['forum']);
//$_G['setting']['threadhidethreshold'] = 1;


//$query = C::t('forum_thread')->fetch_all_for_guide1($view, $limittid, $tids, $_G['setting']['heatthread']['guidelimit'], $dateline); 

//$query = C::t('forum_thread')->fetch_all_search('', 'forum_thread', 0,'', '', '');;
//print_r($query);

require_once libfile('function/discuzcode');
require_once libfile('function/attachment');
require_once libfile('function/forum');
   $sql = "SELECT a.*, b.message,b.htmlon,b.bbcodeoff,b.smileyoff,b.parseurloff,b.pid,b.first FROM ".DB::table('forum_thread')." a left join ".DB::table('forum_post')." b on a.authorid=b.authorid and a.tid=b.tid and b.first=1  WHERE 1=1 AND a.heats>=1" ;
   $sql = "SELECT a.*, b.message,b.htmlon,b.bbcodeoff,b.smileyoff,b.parseurloff,b.pid,b.first FROM ".DB::table('forum_thread')." a left join ".DB::table('forum_post')." b on a.authorid=b.authorid and a.tid=b.tid and b.first=1 WHERE a.tid>0 AND a.heats>=0  ORDER BY a.lastpost DESC LIMIT 600";
  $query = DB::fetch_all($sql);
  $postlist     = array();
  foreach($query as $post){
      $post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'] & 1, $_G['forum']['allowsmilies'], $forum_allowbbcode, ($_G['forum']['allowimgcode'] && $_G['setting']['showimages'] ? 1 : 0), $_G['forum']['allowhtml'], ($_G['forum']['jammer'] && $post['authorid'] != $_G['uid'] ? 1 : 0), 0, $post['authorid'], $_G['cache']['usergroups'][$post['groupid']]['allowmediacode'] && $_G['forum']['allowmediacode'], $post['pid'], $_G['setting']['lazyload'], $post['dbdateline'], $post['first']);
      
      $_G['forum_attachpids'][] = $post['pid'];
      if(preg_match_all("/\[attach\](\d+)\[\/attach\]/i", $post['message'], $matchaids)) {
   $_G['forum_attachtags'][$post['pid']] = $matchaids[1];
      }
      $postlist[$post['pid']] = $post;
  }
    
  parseattach($_G['forum_attachpids'], $_G['forum_attachtags'], $postlist);
  
  print_r($postlist);
  
?>

死活找不到那里有问题。

形如[img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]
这样的是 ubb 代码
你可以找到 ubb 解码程序相关的部分切入
他好像是 bbcode 类

我也是跟lz一样,找到类似函数后没法解析了。这里看来大神没空解释这个问题

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So ändern Sie den Microsoft Edge-Browser so, dass er mit 360-Navigation geöffnet wird - So ändern Sie die Öffnung mit 360-Navigation So ändern Sie den Microsoft Edge-Browser so, dass er mit 360-Navigation geöffnet wird - So ändern Sie die Öffnung mit 360-Navigation Mar 04, 2024 pm 01:50 PM

Wie ändere ich die Seite, die den Microsoft Edge-Browser öffnet, auf 360-Navigation? Es ist eigentlich sehr einfach, deshalb werde ich Ihnen jetzt die Methode vorstellen, die Seite zu ändern, die den Microsoft Edge-Browser auf 360-Navigation öffnet Schau mal. Ich hoffe, ich kann allen helfen. Öffnen Sie den Microsoft Edge-Browser. Wir sehen eine Seite wie die folgende. Klicken Sie auf das Dreipunktsymbol in der oberen rechten Ecke. Klicken Sie auf „Einstellungen“. Klicken Sie in der linken Spalte der Einstellungsseite auf „Beim Start“. Klicken Sie auf die drei im Bild in der rechten Spalte angezeigten Punkte (klicken Sie nicht auf „Neuen Tab öffnen“), klicken Sie dann auf Bearbeiten und ändern Sie die URL in „0“ (oder andere bedeutungslose Zahlen). Klicken Sie anschließend auf „Speichern“. Wählen Sie als Nächstes „

Was ist Discuz? Definition und Funktionseinführung von Discuz Was ist Discuz? Definition und Funktionseinführung von Discuz Mar 03, 2024 am 10:33 AM

„Discuz erkunden: Definition, Funktionen und Codebeispiele“ Mit der rasanten Entwicklung des Internets sind Community-Foren zu einer wichtigen Plattform für Menschen geworden, um Informationen zu erhalten und Meinungen auszutauschen. Unter den vielen Community-Forumsystemen wird Discuz als bekannte Open-Source-Forumsoftware in China von der Mehrheit der Website-Entwickler und -Administratoren bevorzugt. Was ist Discuz? Welche Funktionen hat es und wie kann es unserer Website helfen? In diesem Artikel wird Discuz ausführlich vorgestellt und spezifische Codebeispiele beigefügt, damit die Leser mehr darüber erfahren können.

Ein Muss für Discuz-Benutzer! Umfassende Analyse zum Umbenennen von Requisiten! Ein Muss für Discuz-Benutzer! Umfassende Analyse zum Umbenennen von Requisiten! Mar 12, 2024 pm 10:15 PM

Ein Muss für Discuz-Benutzer! Umfassende Analyse zum Umbenennen von Requisiten! Im Discuz-Forum hat die Namensänderungsfunktion seit jeher große Aufmerksamkeit und Nachfrage seitens der Nutzer erhalten. Für einige Benutzer, die ihren Namen ändern müssen, können die Namensänderungs-Requisiten den Benutzernamen leicht ändern, und dies ist auch eine interessante Art der Interaktion. Werfen wir einen detaillierten Blick auf die Umbenennungs-Requisiten in Discuz, einschließlich der Art und Weise, wie man sie erhält, wie man sie verwendet und Lösungen für einige häufig auftretende Probleme. 1. Namensverändernde Requisiten erhalten Sie in Discuz. Namensverändernde Requisiten werden normalerweise über Punkte oder den Administrator erworben

Wo wird die Download-Schaltfläche in Microsoft Edge festgelegt? – So richten Sie die Download-Schaltfläche in Microsoft Edge ein Wo wird die Download-Schaltfläche in Microsoft Edge festgelegt? – So richten Sie die Download-Schaltfläche in Microsoft Edge ein Mar 06, 2024 am 11:49 AM

Wissen Sie, wo Sie die Download-Schaltfläche für die Anzeige in Microsoft Edge festlegen müssen? Im Folgenden erfahren Sie, wie Sie die Download-Schaltfläche für die Anzeige in Microsoft Edge festlegen Darüber! Schritt 1: Öffnen Sie zunächst den Microsoft Edge-Browser und klicken Sie auf das [...]-Logo in der oberen rechten Ecke, wie in der Abbildung unten gezeigt. Schritt 2: Klicken Sie dann im Popup-Menü auf [Einstellungen], wie in der Abbildung unten gezeigt. Schritt 3: Klicken Sie dann auf der linken Seite der Benutzeroberfläche auf [Darstellung], wie in der Abbildung unten gezeigt. Schritt 4: Klicken Sie abschließend auf die Schaltfläche auf der rechten Seite von [Download-Schaltfläche anzeigen] und sie wechselt von Grau zu Blau, wie in der Abbildung unten gezeigt. Oben zeigt Ihnen der Editor, wie Sie die Download-Schaltfläche in Microsoft Edge einrichten.

Wie richte ich die Cheat Engine auf Chinesisch ein? Cheat Engine-Einstellung chinesische Methode Wie richte ich die Cheat Engine auf Chinesisch ein? Cheat Engine-Einstellung chinesische Methode Mar 13, 2024 pm 04:49 PM

CheatEngine ist ein Spieleeditor, der den Speicher des Spiels bearbeiten und ändern kann. Die Standardsprache ist jedoch nicht Chinesisch, was für viele Freunde unpraktisch ist. Wie stellt man Chinesisch in CheatEngine ein? Heute gibt Ihnen der Herausgeber eine detaillierte Einführung in die Einrichtung von Chinesisch in CheatEngine. Ich hoffe, es kann Ihnen helfen. Einstellungsmethode eins: 1. Doppelklicken Sie, um die Software zu öffnen, und klicken Sie oben links auf „Bearbeiten“. 2. Klicken Sie dann in der Optionsliste unten auf „Einstellungen“. 3. Klicken Sie in der geöffneten Fensteroberfläche in der linken Spalte auf „Sprachen“.

Discuz Editor: ein effizientes Post-Layout-Tool Discuz Editor: ein effizientes Post-Layout-Tool Mar 10, 2024 am 09:42 AM

Discuz Editor: Ein effizientes Post-Layout-Tool Mit der Entwicklung des Internets sind Online-Foren zu einer wichtigen Plattform für die Kommunikation und den Informationsaustausch geworden. Im Forum können Nutzer nicht nur ihre Meinungen und Ideen äußern, sondern auch mit anderen diskutieren und interagieren. Bei der Veröffentlichung eines Beitrags kann ein klares und schönes Format oft mehr Leser anziehen und genauere Informationen vermitteln. Um Benutzern das schnelle Schreiben und Bearbeiten von Beiträgen zu erleichtern, wurde der Discuz-Editor ins Leben gerufen und zu einem effizienten Beitragssatz-Tool entwickelt. Disku

Ausführliche Erläuterung des Discuz-Registrierungsprozesses: So können Sie persönliche Daten einfach ändern Ausführliche Erläuterung des Discuz-Registrierungsprozesses: So können Sie persönliche Daten einfach ändern Mar 13, 2024 pm 12:21 PM

„Detaillierte Erläuterung des Discuz-Registrierungsprozesses: Damit Sie persönliche Informationen einfach ändern können, sind spezifische Codebeispiele erforderlich.“ Discuz ist ein leistungsstarkes Community-Forumsprogramm, das auf verschiedenen Websites häufig verwendet wird. Es bietet zahlreiche Funktionen für die Benutzerregistrierung und die Änderung persönlicher Informationen und Schnittstellen. Dieser Artikel führt Sie ausführlich in den Registrierungsprozess von Discuz ein und stellt spezifische Codebeispiele bereit, die Ihnen dabei helfen, Ihre persönlichen Daten einfach anzupassen und zu ändern. 1. Benutzerregistrierungsprozess Bei Discuz ist die Benutzerregistrierung eine der wichtigen Funktionen der Website

Anleitung zur Änderung des Discuz-Domänennamens Anleitung zur Änderung des Discuz-Domänennamens Mar 09, 2024 pm 04:36 PM

Bedienungsanleitung zur Änderung des Discuz-Domänennamens Bei der Verwendung des Discuz-Forumsystems müssen wir manchmal den Domänennamen des Forums ändern. Dies kann daran liegen, dass der Domänenname geändert werden muss oder einige Probleme bei der Auflösung von Domänennamen behoben werden müssen. In diesem Artikel wird detailliert beschrieben, wie der Domänenname im Discuz-Forumsystem geändert wird, und es werden einige spezifische Codebeispiele aufgeführt. 1. Daten sichern Bevor wir einen Vorgang durchführen, müssen wir die Daten sichern, um Datenverlust aufgrund von Betriebsfehlern zu verhindern. In Discuz können Sie die Datensicherung im Hintergrund nutzen

See all articles