2014-01-30 28 views
0

這裏我的第一個問題在SO:如何寫一個JSON文件日誌,成HTML表格

我有一個簡單log.json哪裏寫了像某些消息:

{"name":"Bob","message":"Hey there"}{"name":"Alice","message":"Hi Sir"} 

那麼,是什麼我會是讀log.json的內容並把它放在一個簡單的HTML表格,

我不喜歡這樣的:

<?php 
     session_start(); 
     if ($_SESSION['me'] == "") { // Just in case you got a session 
      header("location:index.php"); 
     } 

     $logFile = "log.json"; 
     $data = file_get_contents($logFile); 
     $json_data = json_decode($data); 
    ?> 

    <html> 
     <head> 
      <title>Message History</title> 
     </head> 
     <body> 
      <table border="1px"> 
      <tr> 
       <td> 
        User 
       </td> 
       <td> 
        Messages 
       </td> 
      </tr> 
       <?php 
        foreach ($json_data as $row) { 
       ?> 
      <tr> 
        <td> 
         <?= $row->name; ?> 
        </td> 
        <td> 
         <?= $row->message; ?> 
        </td> 
       <?php 
       }   // close my loop 
       ?> 
      </tr> 
     </table> 
      <br /> 
      <input type="button" value="Back Home" onclick="location.href='home.php';"> 
     </body> 
    </html> 

當然不工作..任何想法或建議? 謝謝你們!

編輯: 這裏是我寫的JSON在log.json:

$logFile = "log.json"; 
      $file = json_encode(array('name'=>$user_name, 'message'=>$user_message)); 
      file_put_contents($logFile, $file, FILE_APPEND | LOCK_EX); 
+0

什麼錯誤ü越來越 – DarkBee

+0

您的JSON是無效 – hindmost

+3

那不是JSON,它是連接在一起一堆JSON文本。我不想嘗試去糾纏它(儘管如果你不斷地將它們拉下來並嘗試解析它們,直到你找到一個匹配然後循環),你可能會有一些運氣。 – Quentin

回答

0

的JSON在您的日誌文件是無效的,因爲包裹陣列和逗號分隔符的項目之間缺少。你必須重寫你的寫功能。看看這個快速的例子:

<?php 

$logFile = "log.json"; 
$content = array('name'=> "Max", 'message'=> "Test 123"); 
$existing = json_decode(@file_get_contents($logFile)); 
if(!$existing || !is_array($existing)) 
{ 
    $existing = array(); 
} 
$existing = array_merge($existing, array($content)); 
file_put_contents($logFile, json_encode($existing), LOCK_EX); 

這應該工作。

+0

那麼,我需要的是一個更好的json文件,並在json_decode中添加「true」。 – Giuseppe