a:6:{i:0;s:10459:"				<div class="h1"><h1>Singapore with Phuket Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.hifiholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.hifiholidays.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Singapore with Phuket Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Bangkok, Phuket, Singapore</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.hifiholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore with Phuket Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="109157"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_14/411823/180424.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/411823/180424.jpg"  width="150" height="150"    alt="Singapore with Phuket Tour" title="Singapore with Phuket Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
											<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrival
								</p>
								<p class="aj">Board your Flight to Singapore. Upon your arrival at Singapore airport you will be transferred to the hotel. Check in the Hotel and relax.<br />
<br />
In the evening get ready for adventure. The exciting Night Safari tour is full of surprises. Hop onboard the tram. Begin the 40-minute journey of wild animal encounters. Journey from the Himalayan foothills to wild Equatorial Africa accompanied by informative live commentary. Get a chance to come up-close with lions, tigers, tapirs, deer and more. The Creatures of the Night Show is a thrilling 20-minute animal presentation set in a forest clearing. Get introduced to nocturnal animals, from the mysterious owl to agile binturongs to instinctive civets. After the thrilling adventure return to hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Singapore
								</p>
								<p class="aj">Begin the day with a refreshing breakfast in the hotel. The day will be followed by a panoramic half-day tour of the city. The sightseeing starts with a photo opportunity at the Merlion statue. Visit sights including Suntec City- a huge mall with brands from across the world, Fountain of Wealth- a mesmerizing site, Orchard Road- a boulevard with outlets of luxury brands, Little India and Chinatown. After covering the iconic sights the day is free for your own activities. Go for street shopping or try the delicious street food. Back to the hotel for overnight stay.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Singapore
								</p>
								<p class="aj">Start the day with a leisurely breakfast. In the afternoon, proceed on a Sentosa Twilight Tour. The tour includes a one-way cable car ride and admission to S.E.A Aquarium, Luge & Sky ride, Butterfly Park & Insect Kingdom and Wings of Time. Sentosa is a haven of attractions and activities. The island is breathtaking beauty of the lush greenery. The tropical resort offers themed attractions, nature Park and heritage center all rolled into one. Recuperate from the excitements in your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Phuket
								</p>
								<p class="aj">This morning have a quick breakfast after which you will be transferred to the Airport to board your flight to Phuket. After arrival at the international airport, meet our representative who will escort you to one of our listed hotel. Check-in at the hotel to relax in the cozy comfort of its room.<br />
<br />
Phuket is a beautiful holiday destination in Thailand. Blessed with picturesque beaches, temples and exciting nightlife, the fascinating town has a wide array of things to do and places to see. Go exploring and return for overnight stay at the hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Phi Phi Island
								</p>
								<p class="aj">After a hearty breakfast, move to explore the Phi Phi Island. Reach the beautiful treasure of Thailand by using a ferry. The island is blessed with incredible view of Maya Bay landscapes. The popular film 'The Beach' has captured its beauty but to experience the bliss is magical. Enjoy a delicious lunch at the beach side hotels. Get to a secluded portion of the beach where you can enjoy water sports activities like swimming, snorkeling etc. Later return to the hotel for overnight stay.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Phuket - Phuket City Tour
								</p>
								<p class="aj">Start you day with breakfast at the hotel. Get ready to proceed for Phuket City Tour. Visit the bygone era as you walk through the Portuguese buildings. Next, visit Wat Chalong. It is a revered Buddhist temple on the island. Proceed to explore Rawai Beach, Sea Gypsy village and Cape Promthep. These are icons of the picturesque island. The rest of the day is at leisure. Check out the colorful markets offering attractive bargains. Return to your hotel for overnight stay.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Tour Ends
								</p>
								<p class="aj">Have breakfast after which you check out from the hotel. Get the timely transfer to the Bangkok International Airport for your return flight. The tour ends but you return home with cherished memories of Singapore and Phuket.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.hifiholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore with Phuket Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="109157"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Singapore with Phuket Tour - 6 Nights / 7 Days Tour Packages";i:2;s:140:"book singapore with phuket tour - 6 nights / 7 days tour packages, beach and islands tour packages, bangkok, phuket, singapore tour packages";i:3;s:185:"Hifi Tour & Travel  Holidays offers Singapore with Phuket Tour - 6 Nights / 7 Days tour package, budget Beach and Islands tour packages for Bangkok, Phuket, Singapore at exciting price.";i:4;s:424:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bangkok, Phuket, Singapore"        
		                 },
		      "description": "",
		      "name": "Singapore with Phuket Tour",
		      "telephone": "+91-9890797744"
		    }
		    </script>
			";i:5;N;}