我有一个简单的代码脚本来读取PHP文件,当它被更改时,它应该在页面上显示CHANGED,我将更改为刷新页面或更改内容。现在,它显示内容,函数重复一次或两次,然后它只显示任何内容。有什么帮助吗?
以下是代码:
<?php
$handle = fopen("../chat/real/chatserver.php", "r");
$contents = fread($handle, filesize("../chat/real/chatserver.php"));
fclose($handle);
$newcontents = $contents;
echo $contents;
?>
<script type="text/javascript">
checkchanged();
function checkchanged() {
document.write("<?php $handle = fopen('../chat/real/chatserver.php', 'r');
$newcontents = fread($handle,filesize('../chat/real/chatserver.php'));fclose($handle);?>");
document.write("<?php if(!($contents==$newcontents)){echo 'Changed';} ?>");
setTimeout('checkchanged()',3000);
}
</script>
感谢您的帮助
答案 0 :(得分:2)
这是因为您不能在JavaScript中包含PHP以便客户端执行它。是的,你可以包含PHP值,但就是这样。看看浏览器中的源代码:
<script type="text/javascript">
checkchanged();
function checkchanged() {
document.write("");
document.write("");
setTimeout('checkchanged()',3000);
}
</script>
如您所见,使用空字符串document.write
调用函数""
。这是因为<?php ?>
中的所有内容都在服务器上执行,而不是在客户端上执行, 之前 将结果页面发送到客户端。
由于每个PHP代码仅在$contents==$newcontents
为true
时被解析,因此您永远不会看到Changed
。
要实现类似聊天服务器的功能,您需要新的http请求。看看AJAX。