2009-05-20 118 views
0

我正在通過php://輸入接收XML,並且在使用simpleXML將元素分解爲變量之後,我想要做的是追加一個數組,或者每隔30秒左右創建一個變量數組。在MySQL插入之前更新數組?

原因是該腳本會越來越定期投入,而不是做MySQL的更新或插入的負荷,我想這可能是效率更好。

所以,如果有人有一個時刻,幾個問題。

1)有沒有辦法檢查php://輸入的新輸入。 2)有沒有更好的方法來做這個重複檢查比睡眠功能? 3)如何使用這些更新變量追加/添加到數組中?

我還沒有走的太遠的是,這樣的代碼是沒有用的,但如果你能原諒我簡單: -

function input() { 

    $xml = new SimpleXMLElement($input); 

    $session_id = $xml->session_id; 
    $ip = $xml->ip; 
    $browser = $xml->browser; 

    store($session_id, $ip, $browser); 
    } 

function store() { 
    $session_id = array(); 
    $ip = array(); 
    $browser = array(); 
} 

回答

0

如果我理解正確的話,看來你要使用PHP用於長期運行的有狀態程序。我相信您知道以下內容: PHP程序的運行時間通常不會超過幾毫秒,對於典型的Web應用程序,最多隻需幾秒鐘。每次從PHP處理程序請求資源時,解析都會重新開始,並且不存在以前執行時保留的程序狀態。作爲一個無國籍的環境,維護國家取決於你。出於這個原因,PHP不會處理隨時間變化的輸入或維持狀態。

這就是說,要追加到一個數組的最簡單的方法是follwing:

$myarray[] = "newvalue"; 

$myarray['newkey'] = "newvalue"; 

要處理的數據流:

while (!feof($handle)){ $data = fgets($handle, 4096); } 
+0

很好的回答,我最終以不同的方式做這個......寫入文件,然後事件mySQL稍後更新。 – waxical 2009-06-30 10:30:18