In diesem Artikel wird hauptsächlich die Implementierung der Website-Message-Board-Funktion in PHP vorgestellt. Sie ist hauptsächlich dem Changyan-Message-Board und den NetEase-Beitragsstilen nachempfunden. Ich hoffe, es hilft allen.
Was ich erreichen möchte, ist der unten gezeigte Stil. Sie können sich auf die unten aufgeführten Message Boards beziehen. Ihre Implementierungsprinzipien sind die gleichen.
Nachricht ändern Board-Stil:
NetEase-Beitragsstil:
Prinzip
Sie müssen der Kommentartabelle zwei Hauptfelder hinzufügen, z. B. Artikel-ID und Antwort Zeit, Antwortinhalt, Antwortende usw.
Die PID ist die ID des Kommentars, auf den derzeit geantwortet wurde.
Wie Sie auf dem Bild oben sehen können, ist die PID jeder Ebene die ID des Kommentars auf der vorherigen Ebene. Schauen Sie sich das Layout oben genauer an. Ist es mit mehrdimensionalen Arrays in PHP vergleichbar? Wenn Sie es sich vorstellen können, ist es einfach.
Implementierungsmethode
1. Rezeption: Dies ist relativ einfach, es ist in p eingebettet. Legen Sie dann den Rand- und Randabstand von p fest
<p class="comment"> <p class="comment"> <p class="comment"> </p> </p> </p> <p class="comment"> </p>
2. Backstage: Zuerst werden zwei Rekursionen verwendet, um die Ergebnisse im zu reorganisieren Datenbank. Verwenden Sie als Nächstes nach der Reorganisation die Rekursion, um den obigen Front-End-Code auszugeben
Die Struktur und der Inhalt der Kommentartabelle sind wie folgt
Dann lesen Sie alle Kommentare in dieser Tabelle direkt durch. Sie können das folgende Array erhalten
Array ( [0] => Array ( [id] => 1 [pid] => [content] => 评论1 ) [1] => Array ( [id] => 2 [pid] => [content] => 评论2 ) [2] => Array ( [id] => 3 [pid] => [content] => 评论3 ) [3] => Array ( [id] => 4 [pid] => 1 [content] => 评论4回复评论1 ) [4] => Array ( [id] => 5 [pid] => 1 [content] => 评论5回复评论1 ) [5] => Array ( [id] => 6 [pid] => 2 [content] => 评论6回复评论2 ) [6] => Array ( [id] => 7 [pid] => 4 [content] => 评论7回复评论4 ) [7] => Array ( [id] => 8 [pid] => 7 [content] => 评论8回复评论7 ) [8] => Array ( [id] => 9 [pid] => 8 [content] => 评论9回复评论8 ) [9] => Array ( [id] => 10 [pid] => 8 [content] => 评论10回复评论8 ) )
Dann müssen wir dieses Array in das oben stehende Message-Board-Formular umstrukturieren
wobei $array das oben gelesene Array ist. Nehmen Sie zuerst die PID heraus, die leer ist Standardmäßig können Sie nach dem Herausnehmen des Arrays
public static function tree($array,$child="child", $pid = null) { $temp = []; foreach ($array as $v) { if ($v['pid'] == $pid) { $v[$child] = self::tree($array,$child,$v['id']); $temp[] = $v; } } return $temp; }
, dessen PID die aktuelle Kommentar-ID ist, den folgenden Array erhalten dem vorderen Kommentarstil sehr ähnlich
Array ( [0] => Array ( [id] => 1 [pid] => [content] => 评论1 [child] => Array ( [0] => Array ( [id] => 4 [pid] => 1 [content] => 评论4回复评论1 [child] => Array ( [0] => Array ( [id] => 7 [pid] => 4 [content] => 评论7回复评论4 [child] => Array ( [0] => Array ( [id] => 8 [pid] => 7 [content] => 评论8回复评论7 [child] => Array ( [0] => Array ( [id] => 9 [pid] => 8 [content] => 评论9回复评论8 [child] => Array ( ) ) [1] => Array ( [id] => 10 [pid] => 8 [content] => 评论10回复评论8 [child] => Array ( ) ) ) ) ) ) ) ) [1] => Array ( [id] => 5 [pid] => 1 [content] => 评论5回复评论1 [child] => Array ( ) ) ) ) [1] => Array ( [id] => 2 [pid] => [content] => 评论2 [child] => Array ( [0] => Array ( [id] => 6 [pid] => 2 [content] => 评论6回复评论2 [child] => Array ( ) ) ) ) [2] => Array ( [id] => 3 [pid] => [content] => 评论3 [child] => Array ( ) ) )
Nachdem Sie das obige Array erhalten haben, verwenden Sie die Rekursion, um es auszugeben
public static function traverseArray($array) { foreach ($array as $v) { echo "<p class='comment' style='width: 100%;margin: 10px;background: #EDEFF0;padding: 20px 10px;border: 1px solid #777;'>"; echo $v['content']; if ($v['child']) { self::traverseArray($v['child']); } echo "</p>"; } }
Dann können Sie sehen
Das Prinzip besteht darin, einfach das Array neu zu organisieren und dann die Ausgabe zu durchlaufen.
Verwandte Empfehlungen:
Detaillierte Erklärung, wie PHP hexadezimale Bilddaten auf der Webseite anzeigt
Detaillierte Erklärung der Verhaltenserweiterungen und Plug-ins von ThinkPHP
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Funktion der Implementierung des Website-Messageboards in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!