2009-05-20 74 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