Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery从.txt文件重新加载php值_Javascript_Php_Jquery - Fatal编程技术网

Javascript Jquery从.txt文件重新加载php值

Javascript Jquery从.txt文件重新加载php值,javascript,php,jquery,Javascript,Php,Jquery,我想从.txt文件中重新加载一些数据 .txt文件如下所示: 0;玩家1;10;玩家2;10;玩家3;0;球员4;0;00:00:00;0;0 我试着在播放器1之后重新加载数据“10”,该播放器的PHP值$s1s[2] 下面的代码确实读取了整个txt文件(我知道),但我不熟悉Javascript,我需要得到这个值的输出,而不是整个txt文件 PHP: Javascript: $(document).ready(function() { setInterval(function() {

我想从.txt文件中重新加载一些数据

.txt文件如下所示: 0;玩家1;10;玩家2;10;玩家3;0;球员4;0;00:00:00;0;0

我试着在播放器1之后重新加载数据
“10”
,该播放器的PHP值
$s1s[2]

下面的代码确实读取了整个txt文件(我知道),但我不熟悉Javascript,我需要得到这个值的输出,而不是整个txt文件

PHP:

Javascript:

$(document).ready(function() {
  setInterval(function() {
    var randomnumber=Math.floor(Math.random()*100)
    $("<?php echo "#staende_$v" ?>").load("<?php print $spielfile ?>");
  }, 1000);
});
$(文档).ready(函数(){
setInterval(函数(){
var randomnumber=Math.floor(Math.random()*100)
$(“”)。加载(“”);
}, 1000);
});
有什么建议吗?

如前所述,您应该使用Ajax请求返回JSON格式的数据

$(document).ready(function() {
  setInterval(function() {
    $.get(
      "yourscript.php",
      { "_": $.now() }, // disable response cache, multiple methods available.
      function(data) {
        data.forEach(function(player){
          $('<?= "#staende_$v" ?>').text("Player: " + player.id + " has data " + player.data);
        })
      }
    );
  }, 1000);
});
$(文档).ready(函数(){
setInterval(函数(){
美元(
“yourscript.php”,
{“\:$.now()},//禁用响应缓存,多个方法可用。
功能(数据){
data.forEach(函数(播放器){
$('').text(“播放器:“+Player.id+”有数据“+Player.data”);
})
}
);
}, 1000);
});
显然,您的PHP应该加载文本文件,获取所需的数据并以正确的格式返回:

<?php
  $content = file_get_contents('./source.txt');
  $content = explode(';', $content);

  // The array should look like this for the js to function:
  $data[] = [
    'id' => 1,
    'data' => $content[2]
  ];

  // You can append more data for other players as well, easy to loop through in JS.
  die(json_encode($data)); 
?>


浏览器缓存也有一个小问题,
$中的第二个参数。get
请求将解决这个问题。您可以执行
“?time=“+$.now()
,而不使用第二个参数。

您可以使用正则表达式搜索字符串:

$(document).ready(function() {
  setInterval(function() {
    $.get(
      "<?= $spielfile ?>",
      { "_": $.now() }, // disable response cache, multiple methods available.
      function(data) {

        var val = data.replace(/.*;Player 1;([0-9]+).*/, '$1');
        $("#staende_<?= $v ?>").text(val);
      }
    );
  }, 1000);
});
$(文档).ready(函数(){
setInterval(函数(){
美元(
"",
{“\:$.now()},//禁用响应缓存,多个方法可用。
功能(数据){
var val=data.replace(/.*;播放器1;([0-9]+).*/,“$1”);
$(“staende”)文本(val);
}
);
}, 1000);
});

是否可以更改文本文件的格式?如果您使用JSON,这将非常简单。您的逻辑在这里是有缺陷的,因为您的代码并没有每秒重新加载文本文件,它只是获取加载页面时的数据。要做到这一点,我建议使用websockets作为每秒向服务器发出AJAX请求的工具,这与您自己使用DDoS是一样的。Hello@Rorymcrossan谢谢您的回答。无法更改格式。此操作仅在本地系统上运行。当一切顺利运行时,请求时间将更改。我无法理解你的意思,当我更改.txt的数据时,它会自动重新加载“它只是像加载页面时那样获取数据”。致以最良好的问候。谢谢-这就像一个魅力!!!我必须检查代码并在$(“#staende"”)text(val)之后删除});如果使用了数据(开销)(特别是在刷新率为1秒的情况下),则请求仅为2%的响应是不明智的。B:让客户端做一些无用的计算,而这些计算本来应该由服务器过滤掉。而且
没有任何作用。请将其替换为
谢谢!我把它改成了!答:这一次我只是想看看如何利用这些数据。在运行时,我将重新加载95%的数据,并将刷新率设置为30-60秒。)因此,我的下一步是学习如何使用脚本执行foreach。稍后我还会查看Rorys脚本。Sry我指的是@Xorifelse脚本!!谢谢你们两位的建议。
$(document).ready(function() {
  setInterval(function() {
    $.get(
      "<?= $spielfile ?>",
      { "_": $.now() }, // disable response cache, multiple methods available.
      function(data) {

        var val = data.replace(/.*;Player 1;([0-9]+).*/, '$1');
        $("#staende_<?= $v ?>").text(val);
      }
    );
  }, 1000);
});