2011-09-19 55 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")); 
?> 
相關問題