From Novice To Expert
pejsa rifle ballistics software and books Ballistics software and book for precision shooters, hunters, marksmen, and the
military.
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 ...
ANDY SPARROW CAVING SERVICES Offers a range of caving courses.
The Pinball Resource Offers parts, manuals, schematics, & accessories. Manufactures reproduction parts.
PHP kitchen A PHP developers' resource with tutorials and news focusing on OOP, Open Source
and freelance.
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.
UnRiskITT - Risk Analysis Software for the Petroleum Industry Offers to assess risk and evaluate uncertainty, under-balanced drilling and
related production performance.
Candlemaking Supply Catalog of The Wax House A wide variety of candle making supplies.
Hearts Info - The House of Cards Books, software, links and online play information.
Appliance Repair Help, Troubleshooting & Parts- Repair2000.com Operating, troubleshooting, and repair instructions for major home appliances.
Tic-Tac-Toe Strategy Tic-Tac-Toe strategy with explanations and opportunity to put the advises into
practice.
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 ...
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."
Mike Murach and Associates - Publisher of Professional Programming ... Books on computers and programming.
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 ...
Men & Mice - DNS Expert DNS diagnostic utility.
Beacon Hill Lombard :: Home Lombard retirement community near Chicago.
Win At Slots Free tips and strategies for slot machine players.
Columbine Fly Fishers Fly fishing outfitters/guide school, Gift ... Guided fly fishing trips and instruction. Includes trip descriptions and rates.
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);
?>