PHP DOMDocument - 检查更新的XML文件

时间:2012-08-28 14:19:22

标签: php domdocument

我目前有一个看起来像这样的脚本,

$doc = new DOMDocument();
$doc->load( 'sync-img/data.xml' );

$user1 = $doc->getElementsByTagName( "user1" )->item(0)->nodeValue;
$user2 = $doc->getElementsByTagName( "user2" )->item(0)->nodeValue;
$user3 = $doc->getElementsByTagName( "user3" )->item(0)->nodeValue;
$user4 = $doc->getElementsByTagName( "user4" )->item(0)->nodeValue;
$user5 = $doc->getElementsByTagName( "user5" )->item(0)->nodeValue;
$user6 = $doc->getElementsByTagName( "user6" )->item(0)->nodeValue;

当XML文件获取新数据时,它希望脚本或页面刷新。有没有办法将$doc->load()部分放入循环并检查它是否每隔几秒更新一次,然后强制刷新?

1 个答案:

答案 0 :(得分:1)

是的,你可以。

创建一个检查文件Hash的PHP脚本。

echo hash_file('md5', 'sync-img/data.xmlt');

在JavaScript上存储一个变量:

xmlHash = '<?php echo hash_file('md5', 'sync-img/data.xmlt');?>';

定期检查 xmlHash 是否已更改:

$(document).ready(function(){
    checkHash();
});

function checkHash()
{
    $.get('/get_xml_hash.php', function(data) {
        var newHash = data;
                if(newHash != xmlHash)
                     location.reload();
    });

    setTimeout("checkHash()",8000);
}

或者您可以使用HTML5 Server-Sent Events