2011-09-19 59 views
0

好吧,我想要做的是使图像的JavaScript循环,但首先我必须得到的图像列表。在JavaScript中没有办法直接抓取这个文本文件... http://www.ssd.noaa.gov/goes/east/tatl/txtfiles/ft_names.txt但它可以在PHP中完成,我目前使用php gettung txt文件,但JavaScript无法读取变量。我怎样才能让JavaScript能够读取这个变量。这是我有...使用PHP获取文本文件并将字符串发送给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> 
+0

您现在得到什么输出?我假设你在某处调用prnt()? –

+0

您是否启用短标签? – alex

+0

文字的内容是什么?是否有换行符等? – VNO

回答

0

您可以使用回声或打印写入页面在PHP中。

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

尽管如果文件中有换行符,您将需要删除它们。

+0

这对我也不起作用。顺便说一句,我没有说明这一点,但我不想打印到页面的字符串。 –

+0

然后你想要什么? JavaScript不能直接从PHP读取变量。它必须在页面加载时解析,或者您需要通过AJAX获取。 – Will

+0

我想要位于http://www.ssd.noaa.gov/goes/east/tatl/txtfiles/ft_names.txt或我选择以某种方式加载到javascript var的任何其他url的文本文件。 –

0

让它更有趣一点:继续前进并拆分字段并使用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")); 
?> 
相关问题