ホームページ > バックエンド開発 > PHPチュートリアル > PHP は Changyan メッセージ ボードと NetEase 投稿スタイルを実装します

PHP は Changyan メッセージ ボードと NetEase 投稿スタイルを実装します

墨辰丷
リリース: 2023-03-30 07:08:01
オリジナル
1698 人が閲覧しました

この記事では、PHP での Changyan 掲示板と NetEase 投稿スタイルの実装を主に紹介します。興味のある方はぜひ参考にしてください。

メッセージボードのスタイルの変更:

NetEase 投稿のスタイル:

原則
2 つのメインフィールド、id とpid およびその他のフィールドコメント表 記事ID、返信時間、返信内容、返信者などご自由に追加してください。
pid は現在返信されているコメントの ID です。
上の図からわかるように、各レイヤーの pid は前のレイヤーのコメントの ID です。上のレイアウトをよく見てください。 PHP の多次元配列に似ていますか?思いついたら簡単ですよ。
実装方法1. フロント: これは比較的単純で、p に p を埋め込むだけです。次に、p

<p class="comment"> 
 <p class="comment"> 
  <p class="comment"> 
 
  </p> 
 </p> 
</p> 
 
<p class="comment"> 
 
</p>
ログイン後にコピー

のボーダーとマージンパディングを設定します。 バックエンド: 最初に再帰を使用してデータベース内の結果を再編成し、次に再帰を使用して上記のフロントエンドを出力します。コードはコメントテーブルの構造と内容は次のとおりです

そして、このテーブル内のすべてのコメントを直接読み出します。次の配列を取得できます

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 
  ) 
 
)
ログイン後にコピー

次に、この配列を上記の掲示板フォームに再編成する必要があります
ここで、$array は上記で読み取った配列であり、最初にデフォルトで空である pid を取り出し、次に再帰して取り出します。現在のコメント ID の配列を再構成すると、以下の配列が得られます。この配列のスタイルは、前のコメント スタイル

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; 
}
ログイン後にコピー
とよく似ていることがわかります。再帰出力を使用します

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 
    ( 
    ) 
 
  ) 
 
)
ログイン後にコピー
その後、ご覧のとおり

原理は次のようなもので、配列を再編成してから出力を反復処理するだけです。

要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。

関連する推奨事項:

PHP 匿名関数とクロージャーの役​​割

PHP で 2 次元配列をソートする方法

PHP でヘッダー情報を設定する方法

以上がPHP は Changyan メッセージ ボードと NetEase 投稿スタイルを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート