2017-02-06 23 views
0

これでは新しいですが、配列を塗りつぶしてエコーする方法がわかりません。誰か助けてくれますか? :)PHPエコー配列?

まず、私のnotes.txtファイルから情報を取得したいと思っています。イム私は両方の宣言が必要かどうかわからない?:

とにかく
$test = array(); 
$test[] = json_decode(file_get_contents($file), TRUE); 

、これは配列に要素を追加するためのコードは、ユーザーから入力された:

$name = guestbook_input($_POST['name']); 
$comment = guestbook_input($_POST['comment']); 

$test[] = [ 
    'name' => $name, 
    'comment' => $comment, 
    'ip' => $_SERVER['REMOTE_ADDR'], 
    'time' => date("y-m-d H:m") 
]; 

// Write input to file 
file_put_contents($file, json_encode($test)); 

このコードは正常に動作します(と思います)、ファイルに書き込みます。最後に、Imは、このようなテーブルに配列をエコーし​​ようとしている

<?php 
$getfile = json_decode(file_get_contents('./notes.txt'), TRUE); 
     foreach ($getfile as $value): ?> 
     <tr> 
      <?php 
       echo '<td>'; 
       echo $value['name']; 
       echo '</td>'; 
       echo '<td>'; 
       echo $value['comment']; 
       echo '</td>'; 
       echo '<td>IP:'; 
       echo $value['ip']; 
       echo "<br>Tid:"; 
       echo $value['time']; 
       echo '</td>'?> 

     </tr> <?php endforeach; ?> 

このコードは、プリント要素を行いますが、唯一の私のゲストブックの最初の入力のために。これが正しいかどうかは分かりませんが、うまくいけば誰かがこれを手伝ってくれるので、私はこの権利を得ることができますか?

+0

file_put_contentsと3番目のパラメータparamenter FILE_APPENDを見てください。 – donald123

+0

あなたの質問にprint_r($ getfile)を表示します。 – rahulsm

+0

私はprint_r($ getfile)を持っていません。おそらくそれは問題ですか? – Isla

答えて

-1

まず、あなたの宣言と代入は必要ありません。最初に変数を宣言するには、が必要ですが、そのようにすることをお勧めします。ただし、関数呼び出しでは、$test[]は単に次の数値インデックスを持つ新しい要素を作成するだけなので、結果全体を$test[0]に割り当てることになります。ユーザー入力を割り当てるコードは正しいので、正しく出力されます。

-1

ファイルから読み込んだ配列を配列$testの単一要素に置きます。
次に、新しいエントリを2番目の要素として追加します。

あなたのように配列を初期化する必要があります:あなたはそれを呼んでいるように、配列を返すので、それは、

$test = array(); 
$test[] = json_decode(file_get_contents($file), TRUE); 

機能json_decode()

$test = json_decode(file_get_contents($file), TRUE); 
関連する問題