页面上的内容消失

时间:2012-06-15 22:56:58

标签: php javascript

我有一个简单的代码脚本来读取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>

Link to example

感谢您的帮助

1 个答案:

答案 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==$newcontentstrue时被解析,因此您永远不会看到Changed

要实现类似聊天服务器的功能,您需要新的http请求。看看AJAX。