<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "PHP Extract data from geonames"]]></title>
		<link>http://forum.geonames.org/gforum/posts/list/4.page</link>
		<description><![CDATA[Latest messages posted in the topic "PHP Extract data from geonames"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>PHP Extract data from geonames</title>
				<description><![CDATA[ OK, so I was wondering if anyone could help, basically I want to extract airport names using the geonames service from an ICAO code.

This is working fine, except on some airports such as Geneva (LSGG)

It doesnt seem to be encoding the airport name with UTF8 and is showing some strange characters.

Heres my code so far....

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>&lt;?

 $socket = fsockopen&#40;'ws.geonames.org', 80, $errno, $errstr&#41;; 
 if&#40;!$socket&#41;
 {
   echo "SOCKET ERROR";
 }
 
 $icao = $_GET&#91;'icao'&#93;;
 
 $page_url = "/search?q=$icao&maxRows=1&style=full&fcode=AIRP&lang=en";
 fputs&#40;$socket, "GET ".$page_url." HTTP/1.0\r\n"&#41;;
   fputs&#40;$socket, "Host: ws.geonames.org\r\n"&#41;;
   fputs&#40;$socket, "Connection: Close\r\n\r\n"&#41;;
 
 $ret = ''; 
 while &#40;!feof&#40;$socket&#41;&#41; 
 { 
 $ret .= fgets&#40;$socket, 4096&#41;; 
 } 
 fclose&#40;$socket&#41;; 

 // Extract the XML code from response
 $ret = substr&#40;$ret, strpos&#40;$ret, '&lt;?xml'&#41;&#41;;
 
 // Parse XML Code
 $xml = simplexml_load_string&#40;$ret&#41;;

 if&#40;intval&#40;$xml-&gt;totalResultsCount&#41; &gt;= 1&#41;
 {
   $name = $xml-&gt;geoname&#91;0&#93;-&gt;name;
   $lat = $xml-&gt;geoname&#91;0&#93;-&gt;lat;
   $lng = $xml-&gt;geoname&#91;0&#93;-&gt;lng;
   $iata = $xml-&gt;geoname&#91;0&#93;-&gt;alternateName;
 
   echo "$name&lt;BR&gt;$lat, $lng&lt;BR&gt;$iata&lt;BR&gt;&lt;br&gt;";
    echo "$ret &lt;/br&gt;"; 
	echo "&lt;a href='http://ws.geonames.org$page_url'&gt;Raw&lt;/a&gt;"; 
	
 } else {
 die&#40;"ICAO Not found!"&#41;;
 
 }

?&gt;</pre>
		</div>

This works fine for airports such as Manchester EGCC but Geneva (LSGG) and Berlin Schoenfeld (EDDB) is giving strange outputs!

Thanks in advance for the help!

<img src="http://i41.tinypic.com/2mnow7p.jpg" border="0">
<img src="http://i41.tinypic.com/5osfa8.jpg" border="0">]]></description>
				<guid isPermaLink="true">http://forum.geonames.org/gforum/posts/list/1858.page#7583</guid>
				<link>http://forum.geonames.org/gforum/posts/list/1858.page#7583</link>
				<pubDate><![CDATA[Tue, 13 Apr 2010 14:36:02]]> GMT</pubDate>
				<author><![CDATA[ ezycc]]></author>
			</item>
			<item>
				<title>Re:PHP Extract data from geonames</title>
				<description><![CDATA[ Try setting charset to UTF8 by putting the following line before anything else...

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>header&#40;'Content-type: text/html; charset=utf-8'&#41;;</pre>
		</div>]]></description>
				<guid isPermaLink="true">http://forum.geonames.org/gforum/posts/list/1858.page#7584</guid>
				<link>http://forum.geonames.org/gforum/posts/list/1858.page#7584</link>
				<pubDate><![CDATA[Tue, 13 Apr 2010 15:31:43]]> GMT</pubDate>
				<author><![CDATA[ kamm]]></author>
			</item>
	</channel>
</rss>