Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RSS源为空时如何显示文本_Javascript_Php_Html_Rss - Fatal编程技术网

Javascript RSS源为空时如何显示文本

Javascript RSS源为空时如何显示文本,javascript,php,html,rss,Javascript,Php,Html,Rss,我已经为此挣扎了一段时间,我从一个类似的问题中得到了一些帮助,但在我的例子中,我似乎无法使它起作用 我的网站上有一个RSS提要,我试图做的是在RSS提要为空/空白时显示一条消息,上面写着“无警告”。如果RSS提要中有什么内容,那么我只想展示一下 为了我的生命,我不能让它工作!我无法让它识别提要是空的…这可能吗 这是我的密码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR

我已经为此挣扎了一段时间,我从一个类似的问题中得到了一些帮助,但在我的例子中,我似乎无法使它起作用

我的网站上有一个RSS提要,我试图做的是在RSS提要为空/空白时显示一条消息,上面写着“无警告”。如果RSS提要中有什么内容,那么我只想展示一下

为了我的生命,我不能让它工作!我无法让它识别提要是空的…这可能吗

这是我的密码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Loading directly an RSS feed and displaying it</title></head>
<link type="text/css" href="rss-style.css" rel="stylesheet">

<body bgcolor="#FFE991">
<div id="zone" ><img src="/images/alert-icon-120.png" alt="Weather Warnings for SA. Issued by the Australian Bureau of Meteorology" align="left" style="padding-right: 4pt"width="15" height="15" border="0"/>&nbsp;Current South Australian Statewide Warnings:<small><em><font color="black"> &nbsp;&nbsp;Provided by The Bureau of Meteorology</font></em></small>
</div>
<fieldset class="rsslibbomsa">
<?php
    require_once("rsslib.php");
    $url = "http://www.bom.gov.au/fwo/IDZ00057.warnings_sa.xml";
    $rss = RSS_Display($url, 15, false, false);

if ($rss == '')
{  
              // nothing shown, do whatever you want
    echo 'No Current Warnings';
    }


  else
{
// something to display

echo $rss123;

}

?>
</fieldset>
</body>
</html>

直接加载RSS源并显示它
目前南澳大利亚州范围内的警告:由气象局提供
如果它有助于RSS_显示,那么它来自我在下面提供的rsslib.php文件

<?php
/*
    RSS Extractor and Displayer
    (c) 2007-2010  Scriptol.com - Licence Mozilla 1.1.
    rsslib.php

    Requirements:
    - PHP 5.
    - A RSS feed.

    Using the library:
    Insert this code into the page that displays the RSS feed:

    <?php
    require_once("rsslib.php");
    echo RSS_Display("http://www.bom.gov.au/fwo/IDZ00059.warnings_vic.xml", 15);
    ? >

*/

$RSS_Content = array();

function RSS_Tags($item, $type)
{
        $y = array();
        $tnl = $item->getElementsByTagName("title");
        $tnl = $tnl->item(0);
        $title = $tnl->firstChild->textContent;

        $tnl = $item->getElementsByTagName("link");
        $tnl = $tnl->item(0);
        $link = $tnl->firstChild->textContent;

        $tnl = $item->getElementsByTagName("pubDate");
        $tnl = $tnl->item(0);
        $date = $tnl->firstChild->textContent;      

        $tnl = $item->getElementsByTagName("description");
        $tnl = $tnl->item(0);
        $description = $tnl->firstChild->textContent;

        $y["title"] = $title;
        $y["link"] = $link;
        $y["date"] = $date;     
        $y["description"] = $description;
        $y["type"] = $type;

        return $y;
}


function RSS_Channel($channel)
{
    global $RSS_Content;

    $items = $channel->getElementsByTagName("item");

    // Processing channel

    $y = RSS_Tags($channel, 0);     // get description of channel, type 0
    array_push($RSS_Content, $y);

    // Processing articles

    foreach($items as $item)
    {
        $y = RSS_Tags($item, 1);    // get description of article, type 1
        array_push($RSS_Content, $y);
    }
}

function RSS_Retrieve($url)
{
    global $RSS_Content;

    $doc  = new DOMDocument();
    $doc->load($url);

    $channels = $doc->getElementsByTagName("channel");

    $RSS_Content = array();

    foreach($channels as $channel)
    {
         RSS_Channel($channel);
    }

}


function RSS_RetrieveLinks($url)
{
    global $RSS_Content;

    $doc  = new DOMDocument();
    $doc->load($url);

    $channels = $doc->getElementsByTagName("channel");

    $RSS_Content = array();

    foreach($channels as $channel)
    {
        $items = $channel->getElementsByTagName("item");
        foreach($items as $item)
        {
            $y = RSS_Tags($item, 1);    // get description of article, type 1
            array_push($RSS_Content, $y);
        }

    }

}


function RSS_Links($url, $size = 15)
{
    global $RSS_Content;

    $page = "<ul>";

    RSS_RetrieveLinks($url);
    if($size > 0)
        $recents = array_slice($RSS_Content, 0, $size + 1);

    foreach($recents as $article)
    {
        $type = $article["type"];
        if($type == 0) continue;
        $title = $article["title"];
        $link = $article["link"];
        $page .= "<li><a href=\"$link\">$title</a></li>\n";         
    }

    $page .="</ul>/n";

    return $page;

}



function RSS_Display($url, $size = 15, $site = 0, $withdate = 0)
{
    global $RSS_Content;

    $opened = false;
    $page = "";
    $site = (intval($site) == 0) ? 1 : 0;

    RSS_Retrieve($url);
    if($size > 0)
        $recents = array_slice($RSS_Content, $site, $size + 1 - $site);

    foreach($recents as $article)
    {
        $type = $article["type"];
        if($type == 0)
        {
            if($opened == true)
            {
                $page .="</ul>\n";
                $opened = false;
            }
            $page .="<b>";
        }
        else
        {
            if($opened == false) 
            {
                $page .= "<ul>\n";
                $opened = true;
            }
        }
        $title = $article["title"];
        $link = $article["link"];
        $page .= "<li><a href=\"$link\">$title</a>";
        if($withdate)
        {
      $date = $article["date"];
      $page .=' <span class="rssdate">'.$date.'</span>';
    }
        $description = $article["description"];
        if($description != false)
        {
            $page .= "<br><span class='rssdesc'>$description</span>";
        }
        $page .= "</li>\n";         

        if($type==0)
        {
            $page .="</b><br />";
        }

    }

    if($opened == true)
    {   
        $page .="</ul>\n";
    }
    return $page."\n";

}


?>

如果查看rsslib代码,您会发现如果rss没有文章,则返回的字符串将是
\n

检查RSS是否为空的测试应该是
if($RSS==“\n”)


除此之外,rsslib似乎是一个旧代码(2010),它不是面向对象的(这是一个问题,因为在函数外部定义了全局变量,这些变量可能与代码冲突)

此外,这个类负责RSS的所有格式设置,因此如果您想更改它,您需要更改rsslib代码


你应该考虑使用另一类这样的类:面向对象和易于使用。

< P>如果你查看RSLIB代码,你会发现如果RSS没有文章,返回的字符串将是“代码>\N < < /P>”。 检查RSS是否为空的测试应该是
if($RSS==“\n”)


除此之外,rsslib似乎是一个旧代码(2010),它不是面向对象的(这是一个问题,因为在函数外部定义了全局变量,这些变量可能与代码冲突)

此外,这个类负责RSS的所有格式设置,因此如果您想更改它,您需要更改rsslib代码


<>你应该考虑使用另一个这样的类:它是面向对象和易于使用的。

这是有效的。谢谢,非常感谢。我也会看看你的其他建议…再次谢谢。这很管用!谢谢,非常感谢。我也会看看你的其他建议…再次感谢。