Need Help-PHP question

Ye' old general discussion board. Basically, for everything that isn't covered elsewhere. Come here to shoot the breeze, shoot your mouth off, or whatever suits your fancy.
This forum is not for asking programming related questions.

Moderator: General Moderators

Post Reply
aea
Forum Newbie
Posts: 3
Joined: Fri Aug 28, 2009 6:54 pm

Need Help-PHP question

Post by aea »

I am trying to get an RSS feeder to load in my page. When I attempt to load the code I get this error "Error URL missing". I have two files, the php file that loads the code and the rsslib.php which is an include. The code is below. If I put an actual url within the ('URL) for the variable $url=$_GET.... it still doesn't work. Any ideas???

php file that loads and fetches RSS
error_reporting(0);

print "<link rel='stylesheet' href='rsslib.css' type='text/css'>\n";
include_once("rsslib.php");
$url=$_GET['rss_url'];
if(!$url)
print "Error: URL missing!";
else {
$m=$_GET['rss_items'];
if(!$m) $m=0;
$ch=$_GET['rss_chars'];
if(!$ch) $ch=0;
$t=$_GET['rss_target'];
if(!$t) $t="_blank";
$css=$_GET['rss_css'];
if(!$css) $css="rsslib";
rss2html($url,$m,$ch,$t,$css);
}
?>


RssLIB file
$use_cache=false;
$cache_folder="tmp";
$cache_valid=60; // minutes
$display_channel_name=true; // set to false to hide channel name & link

$channel[]=array("","","","","","");

// ***********************************

function rss2html($url,$m=0,$w=0,$target="_blank",$cssprefix="rsslib") {
global $channel,$items,$display_channel_name;

getrss($url);

if($display_channel_name) {
if($channel[1])
print "<a href='{$channel[1]}' target='{$target}' class='{$cssprefix}channel'>";
else
print "<span class='{$cssprefix}channel'>";
print $channel[0];
if($channel[1])
print "</a><br>";
else
print "</span><br>";
}

if($m==0) $m=count($items);
for($i=0;$i<$m;$i++) {
// display items
if($items[$i][1])
print "<a href='{$items[$i][1]}' target='{$target}' class='{$cssprefix}item'>";
else
print "<div class='{$cssprefix}item'>";
print $items[$i][0];
if($items[$i][1])
print "</a><br>";
else
print "</div>";
if($items[$i][2]) {
print "<div class='{$cssprefix}desc'>";
if(($w)&&($w<strlen($items[$i][2])))
print substr($items[$i][2],0,strpos($items[$i][2]," ",$w))." ...";
else
print $items[$i][2];
print "</div>\n";
}

}

if($channel[4]) print "<div class='{$cssprefix}editor'>By {$channel[4]}</div>\n";
if($channel[5]) print "<div class='{$cssprefix}date'>{$channel[5]}</div>\n";
if($channel[3]) print "<div class='{$cssprefix}copyright'>{$channel[3]}</div>\n";
print "<div class='{$cssprefix}copyright'>Powered by <a href='http://www.2RSS.com' target='_blank' class='{$cssprefix}copyright'>RSSlib</a></div><br>\n";

} //end function rss2html

// ***********************************

function rss2js($url,$m=0,$w=0,$target="_blank",$cssprefix="rsslib") {
global $channel,$items,$display_channel_name;

getrss($url);

if($display_channel_name) {
if($channel[1])
print "document.write(\"<a href='{$channel[1]}' target='{$target}' class='{$cssprefix}channel'>";
else
print "document.write(\"<span class='{$cssprefix}channel'>";
print addslashes($channel[0]);
if($channel[1])
print "</a><br>\");\n";
else
print "</span><br>\");\n";
}

if($m==0) $m=count($items);
for($i=0;$i<$m;$i++) {
print "//".$i."\n";
// display items
if($items[$i][1])
print "document.write(\"<a href='{$items[$i][1]}' target='{$target}' class='{$cssprefix}item'>";
else
print "document.write(\"<div class='{$cssprefix}item'>";
print str_replace("\n","\\n",addslashes($items[$i][0]) );
if($items[$i][1])
print "</a><br>\");\n";
else
print "</div>\");\n";
if($items[$i][2]) {
print "document.write(\"<div class='{$cssprefix}desc'>";
if(($w)&&($w<strlen($items[$i][2])))
print str_replace("\n","\\n",addslashes(substr($items[$i][2],0,strpos($items[$i][2]," ",$w))) )." ...";
else
print str_replace("\n","\\n",addslashes($items[$i][2]) );
print "</div>\");\n";
}

}

if($channel[4]) print "document.write(\"<div class='{$cssprefix}editor'>By ".addslashes($channel[4])."</div>\");\n";
if($channel[5]) print "document.write(\"<div class='{$cssprefix}date'>".addslashes($channel[5])."</div>\");\n";
if($channel[3]) print "document.write(\"<div class='{$cssprefix}copyright'>".addslashes($channel[3])."</div>\");\n";
print "document.write(\"<div class='{$cssprefix}copyright'>Powered by <a href='http://www.2RSS.com' target='_blank' class='{$cssprefix}copyright'>RSSlib</a></div><br>\");\n";

} //end function rss2js

// ***********************************

function getrss($url) {
global $channel,$items;
global $use_cache,$cache_folder,$cache_valid;

if($use_cache) {
$cache_filename=$cache_folder."/".md5($url).".rss";
if(file_exists($cache_filename)) {
$t=filemtime($cache_filename);
$cache_create=((!$t)||($t<strtotime("now")-60*$cache_valid)); }
else
$cache_create=true;

if($cache_create) {
//cache not valid - create it again
$simple = file($url);
$f=fopen($cache_filename,"w");
for($i=0;$i<count($simple);$i++)
fwrite($f,$simple[$i]);
fclose($f);
$simple=implode('',$simple);
}
else
$simple = implode('',file($cache_filename));
}
else
$simple = implode('',file($url));

$p = xml_parser_create();
xml_parse_into_struct($p,$simple,$vals,$index);
xml_parser_free($p);
$type=0;
$tmp[]=array("","","");
$id=0;
for($i=0;$i<count($vals);$i++) {

if(($vals[$i]['tag']=="CHANNEL")&&($vals[$i]['type']=="open")) $id=$vals[$i]['level']+1;
if(($type==0)&&($id==$vals[$i]['level']))
switch($vals[$i]['tag']) {
case "TITLE": $channel[0]=$vals[$i]['value']; break;
case "LINK": $channel[1]=$vals[$i]['value']; break;
case "DESCRIPTION":
case "CONTENT:ENCODED": $channel[2]=$vals[$i]['value']; break;
case "COPYRIGHT":
case "DC:RIGHTS": $channel[3]=$vals[$i]['value']; break;
case "MANAGINGEDITOR":
case "DC:PUBLISHER": $channel[4]=$vals[$i]['value']; break;
case "PUBDATE":
case "DC:DATE": $channel[5]=$vals[$i]['value']; break;
}

else switch($vals[$i]['tag']) {
case "TITLE": $tmp[0]=$vals[$i]['value']; break;
case "LINK": $tmp[1]=$vals[$i]['value']; break;
case "DESCRIPTION":
case "CONTENT:ENCODED": $tmp[2]=$vals[$i]['value']; break;
}

if($vals[$i]['tag']=="ITEM") {
if(($vals[$i]['type']=="open")&&($type==0)) $type=1;
if($vals[$i]['type']=="close") {
$items[]=$tmp;
$tmp[0]="";
$tmp[1]="";
$tmp[2]="";
}
}

}

//print_r($channel);
//print_r($items);
} // end function getrss

?>
Post Reply