Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert das Changyan-Message-Board und den NetEase-Post-Stil

PHP implementiert das Changyan-Message-Board und den NetEase-Post-Stil

墨辰丷
墨辰丷Original
2018-06-06 14:05:271709Durchsuche

Dieser Artikel stellt hauptsächlich die Implementierung des Changyan-Message-Boards und des NetEase-Poststils in PHP vor. Ich hoffe, dass er für alle hilfreich ist.

Ändern des Message-Board-Stils:

NetEase-Beitragsstil:

Prinzip
Sie müssen zwei Hauptfelder, id und pid, zur Kommentartabelle hinzufügen nach Belieben hinzugefügt werden, z. B. Artikel-ID, Antwortzeit, Antwortinhalt, antwortende Person 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.
Implementierungsmethode1. Rezeption: Dies ist relativ einfach, es ist in p eingebettet. Stellen Sie dann den Rand- und Randabstand von p ein.

<p class="comment"> 
 <p class="comment"> 
  <p class="comment"> 
 
  </p> 
 </p> 
</p> 
 
<p class="comment"> 
 
</p>

2. Backstage: Es werden zwei Rekursionen verwendet. Zunächst wird die Rekursion verwendet, um die Ergebnisse in der Datenbank neu zu organisieren. Verwenden Sie nach der Reorganisation die Rekursion, um den obigen Front-End-Code auszugeben Die Struktur und der Inhalt der Kommentartabelle lauten wie folgt

und werden dann direkt gelesen Der Inhalt dieser Tabelle Alle Kommentare. 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 obige Message-Board-Formular umstrukturieren
, wobei $array das oben gelesene Array ist. Nehmen Sie zunächst die PID heraus, die standardmäßig leer ist . Nachdem Sie das Array

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; 
}

, dessen PID die aktuelle Kommentar-ID ist, herausgenommen und neu organisiert haben, können Sie das folgende Array erhalten. Sie können sehen, dass der Stil dieses Arrays dem vorderen Kommentar sehr ähnlich ist Stil

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=&#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>"; 
 
 } 
 
}

Dann können Sie sehen

Das Prinzip ist so Es dient dazu, das Array neu zu organisieren und dann einfach die Ausgabe zu durchlaufen.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Die Rolle anonymer PHP-Funktionen und -Abschlüsse

PHPs Methode zum Sortieren zweidimensionaler Arrays

So legen Sie Header-Informationen in PHP fest

Das obige ist der detaillierte Inhalt vonPHP implementiert das Changyan-Message-Board und den NetEase-Post-Stil. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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