简体   繁体   中英

What is wrong with this php string

I am new to php, trying to get a RSS Reader to display a message when there is nothing to display.

I asked for some help yesterday and was kindly assisted, and it made sense, but for some reason it is not storing it.

Hoping someone could tell me what is wrong with the following php.

<?php
require_once("rsslib.php");
$url = "http://www.bom.gov.au/fwo/IDZ00063.warnings_land_qld.xml";
$rss123 = RSS_Display($url, 3, false, true);

if (count($rss123) < 1) 
{  
              // nothing shown, do whatever you want
    echo 'There are no current warnings';
echo '<style type="text/css">
    #flashing_wrapper {
        display: none;
    }
</style>';  
}

  else
{
// something to display
echo $rss123;

}
?>

My problem is, it doesnt seem to be storing a value in $rss123.

It can be viewed at the following address - http://goo.gl/12XQSe

Thanks in advanced,

Pete

----- EDIT ------

As requested in a comment, RSS_Display is from the rsslib.php file, which is as follows

<?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.xul.fr/rss.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 = 18, $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";

}


?>

There seems to be something wrong with the xml file you are using. I tried the with a another xml by replacing the url with the mentioned value. $url = "http://www.scriptol.com/rss.xml"; Oddly enough it seems to be working now with the old xml as well.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM