Detaillierte Erläuterung der Funktion der Implementierung des Website-Messageboards in PHP

*文
Freigeben: 2023-03-19 09:46:01
Original
4058 Leute haben es durchsucht

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>
Nach dem Login kopieren

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 
  ) 
 
)
Nach dem Login kopieren

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[&#39;pid&#39;] == $pid) { 
   $v[$child] = self::tree($array,$child,$v[&#39;id&#39;]); 
   $temp[] = $v; 
  } 
 } 
 return $temp; 
}
Nach dem Login kopieren

, 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 
    ( 
    ) 
 
  ) 
 
)
Nach dem Login kopieren

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=&#39;comment&#39; style=&#39;width: 100%;margin: 10px;background: #EDEFF0;padding: 20px 10px;border: 1px solid #777;&#39;>"; 
  echo $v[&#39;content&#39;]; 
  if ($v[&#39;child&#39;]) { 
   self::traverseArray($v[&#39;child&#39;]); 
  } 
  echo "</p>"; 
 
 } 
 
}
Nach dem Login kopieren

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

Detaillierte Erklärung, wie PHP eine einfache Suchfeldautomatik implementiert Eingabeaufforderungsfunktion

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!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage