Pet Experts
The beef on vegetarian pets Article on mineral deficient vegetarian dog diets.
Pet Peoples Place: Cats Features a library with articles on health and care, forums, recipes, games,
breed overviews.
Pet DMV Provides tags resembling a driver's license, complete with picture, or in the
image of an automobile tag.
Humane Society of Broward County Pet adoption information, mobile animal services spay and neuter clinic, senior
scholarships program, volunteer opportunities, and ways to help.
Super Pet: Canada's Original Super Store for Your Pet! Retail pet and pet supply chain.
National Pet Cages Manufacturer of wire enclosures for the retail pet industry. Products include
crates, exercise pens, vehicle barriers and portable runs.
Royvon Dog Training Centres Detailed information on rates, location and fees.
PetHobbyist - Building the World's Largest Online Pet Community An online pet community.
The Pet Project Information and advice on various pet species, contests, and book reviews.
Super Dog Training Sacramento-Obedience Trainers Roseville,Folsom ... Offers info on dog clubs, shopping and obediance training.
VeterinaryPartner Home Page - VeterinaryPartner.com - a VIN company! A series of articles on pet food labels, ingredients, diet and the skin, food
safety, pet food manufacturers and canning.
Energy Enterprises, Nutrition Industry Experts Offers recipe analysis, consulting, cooking workshops, products, and nutrition
education for the food and nutrition consumer.
Pet-Experts Selling muzzles, rain ponchos, feeders and fountains.
Pet Doors: Moore provides excellent solutions Offers a cat perch and scratching posts, bird cages, feeders and waterers,
electronic and automatic pet doors and cat hammocks.
Grain or Meat Diets, Which One Is Best For Dogs and Cats? An article by Dr. TJ Dunn, contrasting grain-based and meat-based diets fed to
dogs and cats.
Pet supplies and Pet Care from Pets Parade Supplies for cats, dogs, birds, fish, and reptiles.
Sherley's Canada Inc. - International Experts in Pet Care Offering European pet care products for dogs, cats, birds, and small animals.
Pets on the Go: Pet Friendly Travel Unleashed! Tips on international travel, transportation and emergency services and a listing
of pet-friendly hotels in North America.
FlexiMat.com - Pet Bedding Experts Manufacturer of assorted pet beds.
Welcome to Wilkinson - Homepage Product catalogue, special offers,store locator and news from high street chain
selling DIY products, kitchenware, clothing and everyday essentials.
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);
?>