【问题标题】:get a text file using php and send the string to javascript使用 php 获取文本文件并将字符串发送到 javascript
【发布时间】:2011-11-19 22:24:52
【问题描述】:

好的,我要做的是制作一个图像的 javascript 循环,但首先我必须获取图像列表。在 javascript 中没有办法直接获取这个文本文件...http://www.ssd.noaa.gov/goes/east/tatl/txtfiles/ft_names.txt 但它可以在 php 中轻松完成,我目前正在使用 php 获取 txt 文件,但 javascript 无法读取变量。我怎样才能让 javascript 能够读取这个变量。这是我所拥有的......

<?php
$file = "http://www.ssd.noaa.gov/goes/east/tatl/txtfiles/ft_names.txt"; //Path to your *.txt file
$contents = file($file);
$string = implode($contents);
echo $string;
?>
<script type="text/javascript">
    function prnt() {
        var whatever = "<?= $string ?>";
        alert(whatever);
    }
</script>

【问题讨论】:

  • 你现在得到什么输出?我假设你在某处调用 prnt()?
  • 您是否启用了短标签?
  • 正文的内容是什么?有没有换行之类的?
  • @Doug 什么都没有,没有警告框,但是如果我在 php 中创建一个常规变量,例如。 $string = "Ok" 并且不要添加任何东西,它工作正常。
  • 你确定你的 $string 不是空的并且问题没有出现在 PHP 阶段吗?

标签: php javascript string


【解决方案1】:

您可以使用 echo 或 print 在 PHP 中写入页面。

var whatever = "<?php echo $string; ?>";

不过,如果文件中有换行符,则需要将其删除。

【讨论】:

  • 这对我也不起作用。顺便说一句,我没有说明这一点,但我不想将字符串打印到页面上。
  • 那你想要什么? JavaScript 不能直接从 PHP 中读取变量。它必须在页面加载时进行解析,或者您需要通过 AJAX 获取它。
  • 我希望将位于ssd.noaa.gov/goes/east/tatl/txtfiles/ft_names.txt 的文本文件或我选择的任何其他 url 以某种方式加载到 javascript var 中。
  • 你应该使用 AJAX。
  • 是否可以在AJAX中从您的域名之外读取txt文件,我读过它不是。
【解决方案2】:

让它更有趣一点:继续拆分字段并使用 JSON 编码。它应该直接在 javascript 中读取,而不需要在客户端调用 JSON.parse()。

<?php
$lines = file_get_contents('http://...');
$lines = explode("\n",trim($lines));
foreach ($lines as &$line) {
    $line = preg_split('/,? /',$line);
}
$js = json_encode($lines);
?>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script type="text/javascript">
        var dar = <?php echo $js; ?>;
    </script>
</body>
</html>

如果您打算经常运行此文件,特别是如果您打算在某处的公共网络服务器上提供它,您还应该考虑使用本地代理来缓存该文件的结果。将文件本地存储为“noaa_data.txt”,并在 cron 作业(12 小时左右)上有第二个脚本:

<?php 
file_put_contents("/var/www/noaa_data.txt",file_get_contents("http://www.ssd.noaa.gov/goes/east/tatl/txtfiles/ft_names.txt"));
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 2016-02-10
    • 2019-08-27
    相关资源
    最近更新 更多