无法访问存储在缓存中的JSON文本文件

时间:2012-07-18 19:12:55

标签: php javascript json jquery twitter

从我网站缓存中存储的字段中检索一些JSON数据时遇到了一些麻烦。我正在编写的脚本从twitter列表中获取最新的推文,将它收到的JSON数据存储在网站缓存中的.txt文件中。然后将其读取并转换为显示推文的字符串,或至少应该如此。当我不缓存推文并直接访问它时,我有它工作,但是一旦我尝试缓存推文然后从缓存中访问它我就撞墙了。 cache-tweets.php 文件作为服务器上的cron作业运行,并且工作正常,它创建一个包含JSON数据的文本文件没有问题。 cache-tweets.php 的代码如下所示。

$cache = dirname(__FILE__) . '/cache/twitter-json.txt';  

$data = file_get_contents('https://api.twitter.com/1/lists/statuses.json?slug=tab&owner_screen_name=swoophoop&per_page=15&page=1&include_entities=true');   

$cachefile = fopen($cache, 'wb');  
fwrite($cachefile,utf8_encode($data));  
fclose($cachefile);

此代码应使用此代码:

<script type ="text/javascript"> 
$(document).ready(function(){
$.ajax({
    dataType: 'json',
    url: 'http://sotontab.co.uk/wp-content/cache/twitter-json.txt',
    success: function (data) {
        var strTweet = '';

        $.each(data, function(index, tweet){                
            var user_link = '\x3Ca href="http://twitter.com/' + tweet.user.screen_name + '">' + '\x3Cb>' + tweet.user.name + '\x3C/b>\x3C/a>';
            strTweet=strTweet + user_link + ' : &nbsp' + tweet.text.linkify() + '&nbsp' + '\x3Cdiv class="time">' + relative_time(tweet.created_at) + '\x3C/div>&nbsp&nbsp&nbsp';
        });
        tweetMarquee = new Marquee($('div#marquee'),strTweet,$('div#marquee').width);
    }
});
});      


</script>

如果我使用 cahe-tweets.php 中的网址替换上述代码中的网址,则效果非常好,推文显示在我网站的选框内。但如果按原样运行它,就不会出现任何问题。选框甚至没有显示为空。有谁知道为什么它不能与上面的网站网址一起使用?

1 个答案:

答案 0 :(得分:0)

您可以尝试的一件事是将dataType标记为文本,然后执行data = JSON.parse(data);并查看它是否有效。或者,如果使用json后缀而不是文本文件保存文件,它可能会起作用。