Cruise Experts
Alaska Cruise Experts Provides information on itineraries and packages.
Cruises Abroad - Your Cruise Experts Vancouver, BC, cruise agency.
ExpeditionTrips.com :: Alaska, Antarctica & Galapagos Cruises Seattle specialists in small ship cruises.
Discount Cruises, Carnival Cruises Offers wholesale prices. Features inventory of reduced rate sailings.
Spa and Caribbean Golf Cruises, Luxury Hawaii Vacations ... Full service travel agency. Includes information about vacation packages to
Hawaii, Tahiti, Mexico, as well as travel throughout the world.
Welcome to The Cruise Stop Thornhill, Ontario, cruise agency.
Discount Cruises All Cruise Lines
Cruise Experts - Cruises For The Serious Traveller Cruise-only agency. Links to cruise lines.
Churchill and Turen, Virtuoso, Cruise experts, answer upscale ... Travel questions answered by upscale travel and cruise experts. Offering information
and packages for luxury vacations.
Luxury Cruise Experts - Cruise Holidays of Woodinville - Worldwide ... They will help you plan your cruise vacation.
Cruise discounts for all cruise lines including river cruises in ... Cruise only agency offering discount pricing on major cruise lines. Includes cruise
line and ship information, itineraries and destinations.
Carribean Cruise Vacations :: Cruise Society of Golden, Colorado Travel agent specializing in Caribbean cruises.
GalaxSea Cruises of San Diego Travel agency, with detailed information about cruises and cruise ships.
CruiseRivers.com - River Cruising Experts Vancouver, BC, river cruising experts.
Frederick's Vacation, Cruise, and Corporate Travel Experts ... An independent, full-service travel agency providing expert and personal travel
service. Includes staff information, directions, specials and travel links.
CruisesOnly: Great Deals on Cruises Books discount cruises worldwide.
Alaska Cruise - Cruises - Parker Cruise & Tour Kirkland agency that provides featured specials and destinations, weekly radio
show with Kelly Parker and Jim Dai, tips for travelers and contact information.
Luxury Vacation, Cruises, Luxury Travel, Luxury Tours, Luxury Cruises Nicasio vacation and cruise consultants.
Travel Experts USA Travel agency specializing in honeymoons, cruise travel, and Caribbean vacation
packages.
Anchors Away Cruise Travel Agents - Discount Cruise Vacations Burlingame CLIA member agency.
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);
?>