2016-01-24 14 views
1

真的難住這個,感覺像個白癡!我有一個小的PHP cron作業,每隔幾分鐘就做一次。客戶已經要求應用程序通過電子郵件發送每日問題概述....PHP - 保存數組到文件 - 沒有堆積

爲此,我決定將數組轉儲到文件以進行存儲。我決定與SQL DB保持獨立和輕量級。

我想要做的是打開所述文件,添加到一組數字並再次保存。

我已經嘗試過使用SimpleXML和serialize/file_put_contents。

我遇到的問題是寫入文件與正在echo'd行之前的行不對應。說我加入2總,物理文件增加了4

以下是醜陋的,只是一個片段:

echo "count = ".count($result);"<br/>"; 
$arr = loadLog(); 
dumpArray($arr, "Pre Load"); 
$arr0['count'] = $arr['count']+(count($result)); 
echo "test ".$arr0['count']; 
dumpArray($arr0, "Pre Save"); 
saveLog($arr0); 
sleep(3); 
$arr1 = loadLog(); 
dumpArray($arr1, "Post Save"); 

function saveLog($arr){ 
    $content = serialize($arr); 
    var_dump($content); 
    file_put_contents(STATUS_SOURCE, $content); 
} 

function loadLog(){ 
    $content = unserialize(file_get_contents(STATUS_SOURCE)); 
    return $content; 
} 

function dumpArray($array, $title = false){ 
    echo "<p><h1>".$title."</h1><pre>"; 
    var_dump($array); 
    echo "</pre></p>"; 
} 

輸出視圖here 輸出文件:a:1:{s:5:"count";i:96;}

我真的很感激任何人 - 有人看過誰也抓過他的頭。

+0

所以,輸出視圖是正確的。你已經添加了7到82,並得到89.你在哪裏拿'a:1:{s:5:「count」; i:96;}'? –

+1

您確定此腳本的其他任何實例在腳本寫入後都不會重新寫入嗎? –

+0

@u_mulder「a:1:{s:5:」count「; i:96;}」是由file_put_contents在saveLog函數中寫入的目標文件的輸出... – torican

回答

0

檢查.htaccess不向相同的腳本發送404錯誤。 Chrome正在尋找不存在的favicon.ico。這導致腳本第二次執行。