0

我正在使用 yahoo 天气提要和 simplepie 为我的数字显示器获取天气。由于它是一个在屏幕上运行的网站,我不能一直手动刷新浏览器。

我只是想知道是否有任何东西,例如 jquery 或 php doc 可以帮助我随着天气变化定期更新天气信息?如果是这样,你能给我一些关于如何实施的指导吗?非常感谢您的帮助。

这是我的一些代码以防万一

<div id="weather">
        <div id="title">
                <ul>
                    <!--<li> Outside Temp </li>-->
                    <li> Today </li>
                    <li> Tomorrow </li>

                </ul>
        </div> <!--title-->

        <div id="forecast">

        <div id="images">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><img src="<?php echo $forecast->get_image(); ?>" alt="Weather" /></li>

                <?php endforeach; ?>
            </ul>
         </div> <!--images-->

        <div id="degrees">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><?php echo $forecast->get_low(); ?>&deg; &nbsp; <?php echo $forecast->get_high(); ?>&deg; </li>

                <?php endforeach; ?>
            </ul>
            </div><!--degrees-->

    </div> <!--forecast-->
<!--</div> <!--second-->

一些标题部分信息:

<php

require_once('simplepie/simplepie.inc');
require_once('simplepie/simplepie_yahoo_weather.inc');

$feed = new SimplePie();

$feed->set_feed_url('http://weather.yahooapis.com/forecastrss?w=1234567&u=c'); 

$feed->set_item_class('SimplePie_Item_YWeather');

$feed->init();

$weather = $feed->get_item(0);

?>

非常感谢你!

年代:)

4

1 回答 1

2

由于您还没有使用 JavaScript,因此定期刷新页面的一种非常简单的方法可能是使用元刷新标签。尽管已弃用,但它可能是您获取动态页面的一种快速方法。只需将标签添加到<head>页面:

<meta http-equiv="refresh" content="5"> <!--Refresh the page every 5 seconds-->

但是,您可能需要考虑使用 ajax 将您的内容加载到页面中。这可能不是最好的方法,但这里有一些快速而肮脏的代码。

在主页中,您可以使用 jQueryload定期点击您的 PHP 脚本的 URL 并将内容加载到div显示中:

<html>
<head>
    <script type="text/javascript">
        $(document).ready(function(){
            setTimeout(loadWeather, 5000); //using setTimeout instead of a setInterval to avoid having multiple queries queue up when the first one fails to return within the timeout period
        });

        function loadWeather(){
            $('#weather').load('weather.php);
            setTimeout(loadWeather, 5000);
        }
    </script>
</head>
<body>
    <div id="weather" />
</body>
</html>

哪里weather.php可能看起来像这样:

<div id="weather">
        <div id="title">
                <ul>
                    <!--<li> Outside Temp </li>-->
                    <li> Today </li>
                    <li> Tomorrow </li>

                </ul>
        </div> <!--title-->

        <div id="forecast">

        <div id="images">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><img src="<?php echo $forecast->get_image(); ?>" alt="Weather" /></li>

                <?php endforeach; ?>
            </ul>
         </div> <!--images-->

        <div id="degrees">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><?php echo $forecast->get_low(); ?>&deg; &nbsp; <?php echo $forecast->get_high(); ?>&deg; </li>

                <?php endforeach; ?>
            </ul>
            </div><!--degrees-->

    </div> <!--forecast-->
<!--</div> <!--second-->
于 2011-08-12T05:03:42.413 回答