【问题标题】:PHP file_get_contents() in setInterval() not workingsetInterval() 中的 PHP file_get_contents() 不起作用
【发布时间】:2014-01-14 16:14:32
【问题描述】:

我试图在setInterval() 中使用get_file_contents() 来重复更新一些显示文件内容的文本。代码如下:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<body>
  <div id="theDiv"></div>
</body>
<script>
$("document").ready(function(){
  setInterval(function(){
    $("#theDiv").text("<?php echo file_get_contents('file.txt'); ?>");
    console.log("<?php echo file_get_contents('file.txt'); ?>")
  },500);
});
</script>

问题是:在我重新加载页面之前,文本似乎没有更新。

【问题讨论】:

  • “问题是,在我重新加载页面之前,文本似乎没有更新。” -- PHP JavaScript 之前被解释。一旦你理解了你就会回头看这个问题并意识到“哦,这没有任何意义”
  • 检查生成的 HTML/JS 看看为什么...
  • PHP 代码不在 HTML 中“很好”,请参阅How to call a PHP file from HTML or Javascript
  • 你说你想修改服务器上的一个文件[我想说这应该是另一个问题]。反正已经问过了,看How to write into a file in PHP?——顺便提一下tour,写的时候你还没有。

标签: javascript php jquery file-io setinterval


【解决方案1】:

setInterval 在客户端执行,而 php 在服务器端进行评估,因此命令 echo file_get_contents('file.txt'); 仅评估一次。

你需要使用一个ajax请求来返回文件的内容

 $("#theDiv").load("file.txt");

服务器端资源file.txt返回必须在div中显示的所需响应

【讨论】:

  • 好的,所以我现在使用 $("#theDiv").load('file.txt');,效果很好。我唯一需要知道的是,单击按钮时如何更新文本文件?我希望能够单击托管该站点的计算机或我的另一台计算机上的按钮,并在它们两者上都进行更新。最好的方法是什么?
【解决方案2】:

file_get_contents() 未设置为由setInerval 重新加载。您混淆了客户端 JavaScript 和服务器端 PHP。

您可能需要以下内容:

$("document").ready(function(){
    setInterval(function(){
        $("#theDiv").load('file.txt');
    },500);
});

【讨论】:

    【解决方案3】:

    你必须创建另一个php文件来输出内容并使用ajax来获取它。

    例子:

    $("document").ready(function(){
        setInterval(function(){
            $("#theDiv").load('/echo_the_content.php');
        },500);
    });
    

    使用:创建echo_the_content.php

    <?php
    
    echo file_get_contents('file.txt');
    

    如果您的file.txt 位于公共目录(可通过网络访问),那么您可以直接加载它而无需其他 php 文件。

    【讨论】:

    • 无法直接加载file.txt
    • @ShivanRaptor 是的,只要它是公开的。
    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多