0

Web サイトのキャッシュに保存されているフィールドから JSON データを取得する際に少し問題があります。私が書いているスクリプトは、Twitter リストから最新のツイートを取得し、受け取った JSON データを Web サイトのキャッシュ内の .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>

上記のコードの URL をcahe-tweets.phpの URL に置き換えると、完全に機能し、サイトのマーキー内にツイートが表示されます。しかし、そのまま実行しても何も表示されません。マーキーは空としてさえ表示されません。上記のサイトの URL で機能しない理由を知っている人はいますか?

4

1 に答える 1

0

あなたが試すことができることの1つは、dataTypeをテキストとしてマークしてから、data = JSON.parse(data);それが機能するかどうかを確認することです. または、テキスト ファイルとしてではなく、json サフィックスを付けてファイルを保存すると機能する場合があります。

于 2012-07-18T20:03:52.843 に答える