Novice To Expert
Luxury Cruises & Sport Fishing. Captain Anthony Malandro offers the comfort and state of the art equipment as he
takes you aboard his 41' Viking the "Predator."
Beacon Hill Lombard :: Home Lombard retirement community near Chicago.
Tic-Tac-Toe Strategy Tic-Tac-Toe strategy with explanations and opportunity to put the advises into
practice.
The Violet Barn, home of Rob's African Violets Breeder and grower of African violets and other exotic houseplants.
West Branch Angler & Resort Orvis Endorsed Fly Fishing, Log Cabins ... Offers log cabin accommodations, heated swimming pool, restaurant, bar, guide
service and assorted fly fishing activities. Includes rates, reservations ...
PHP kitchen A PHP developers' resource with tutorials and news focusing on OOP, Open Source
and freelance.
Win At Slots Free tips and strategies for slot machine players.
Hearts Info - The House of Cards Books, software, links and online play information.
Edinburgh RC - Scotland's fastest growing cycling club Cycling club in Scotland.
Eastern Shore fine wine scotch - Harrison's Wines and Spirits ... Fine wine, beer, liquor, cigars, snack foods, ice and supplies.
Intrepid Sportfishing - Big game sportfishing in Kona, Hawaii Charters offered by Capt. Dennis Cintas, a professional captain for the past 38
years. Includes fishing calendar and reports, photo gallery, charter rates and ...
Columbine Fly Fishers Fly fishing outfitters/guide school, Gift ... Guided fly fishing trips and instruction. Includes trip descriptions and rates.
The Pinball Resource Offers parts, manuals, schematics, & accessories. Manufactures reproduction parts.
pejsa rifle ballistics software and books Ballistics software and book for precision shooters, hunters, marksmen, and the
military.
Appliance Repair Help, Troubleshooting & Parts- Repair2000.com Operating, troubleshooting, and repair instructions for major home appliances.
Candlemaking Supply Catalog of The Wax House A wide variety of candle making supplies.
Men & Mice - DNS Expert DNS diagnostic utility.
UnRiskITT - Risk Analysis Software for the Petroleum Industry Offers to assess risk and evaluate uncertainty, under-balanced drilling and
related production performance.
Cross-Country Skiing in Michigan's UP - A RING! Feature Article ... Some outdoor enthusiasts enjoy the deeper silence found along cross-country ski
trails which lead through hills and valleys, forests and meadows of Michigan's ...
Mike Murach and Associates - Publisher of Professional Programming ... Books on computers and programming.
rss_url = $url;
$this->num_to_show = $numtoshow;
$this->do_update = $update;
$this->my_html = preg_replace("/(#{.*?):(.*?})/", "\\1__\\2", $html); //xx:xx tag workaround
$this->content = $this->fetch_feed();
$this->parse_feed();
$this->show();
}
/* string */
function fetch_feed()
{
$url_parts = parse_url($this->rss_url);
$filename = $url_parts['host'] . str_replace("/", ",", $url_parts['path']) . "_" . @$url_parts['query'];
if(file_exists($this->data_directory . "/$filename")) {
$last = filemtime($this->data_directory . "/$filename");
if(time() - $last > $this->update_interval * 60 || $this->update_interval == 0) {
$update = 1;
}
} else {
$create= 1;
}
if($create == 1 || ($this->do_update == TRUE && $update == 1)) {
$fp = @fsockopen($url_parts['host'], 80, $errno, $errstr, 5);
if (!$fp) {
echo "Couldn't open rss feed {$this->feed_url} in {$_SERVER['PHP_SELF']}
\n";
return;
}
fputs($fp, "GET " . $url_parts['path'] . "?" . @$url_parts['query'] . " HTTP/1.0\r\n"
."Host: " . $url_parts['host'] . "\r\n"
."User-Agent: Drew's RSS Reader 0.1\r\n"
."Connection: Close\r\n\r\n");
while(!feof($fp)) {
$rss_data .= @fgets($fp, 1024);
}
list(, $rss_data) = explode("\r\n\r\n", $rss_data, 2);
$output = @fopen($this->data_directory . "/$filename", "w+");
if(!$output) {
return $rss_data;
} else {
flock($output, LOCK_EX);
fputs($output, $rss_data);
flock($output, LOCK_UN);
fclose($output);
}
} //update
return file_get_contents($this->data_directory . "/$filename");
}
/* void */
function parse_feed()
{
preg_match("/
(.*?)<\/title>/", $this->content, $title);
$this->feed_title = @$title[1];
preg_match("/ (.*?)<\/link>/", $this->content, $link);
$this->feed_link = @$link[1];
preg_match("/(.*?)<\/description>/", $this->content, $description);
$this->feed_description = @$description[1];
preg_match_all("/- ]*>(.*?)<\/item>/s", $this->content, $items);
if (sizeof($items[0]) == 0) {
echo "No item elements found in rss feed.
\n";
}
for($i = 0; $i < sizeof($items[0]); ++$i) {
preg_match_all("/(?:<([\w:]*)[^>]*>(?:)?<\/\\1>)+?/si", preg_replace("/- ]*>/", "", $items[0][$i]), $elements);
for($j = 0; $j < sizeof($elements[0]); ++$j) {
$elements[1][$j] = str_replace(":", "__", $elements[1][$j]); //regex fix for items with : like dc:date
$this->rss[$i][$elements[1][$j]] = trim(html_entity_decode($elements[2][$j]));
}
}
}
/* void */
function show()
{
if($this->my_html == "") {
$this->show_html();
} else {
$this->show_user_html();
}
}
function show_html()
{
$show = (sizeof($this->rss) > $this->num_to_show ? $this->num_to_show : sizeof($this->rss));
for($i = 0; $i < $show; ++$i) {
echo "-
rss[$i]['link']}\" target=\"_new\">{$this->rss[$i]['title']} \n";
}
}
function show_user_html()
{
$show = (sizeof($this->rss) > $this->num_to_show ? $this->num_to_show : sizeof($this->rss));
for($i = 0; $i < $show; ++$i) {
extract($this->rss[$i]);
$item = preg_replace("/#\{([^}]+)}/e", "$\\1", $this->my_html);
echo $item;
}
}
} // end class
$url = "http://www.justinpfister.com/gnewsfeed.php?q=Expert&lang=en&ned=us";
$show = 3;
$html = "#{title} #{description} ";
$update = 1;
$rss = new rss_parser($url, $show, $html, $update);
$url = "http://search.news.yahoo.com/usns/ynsearch/categories/47/index.html?p=Expert";
$show = 3;
$html = "#{title} #{description} ";
$update = 1;
$rss = new rss_parser($url, $show, $html, $update);
?>