<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ícaro Souza</title>
	<atom:link href="http://icarosouza.net/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://icarosouza.net/blog</link>
	<description>PHP Developer</description>
	<lastBuildDate>Sun, 30 Oct 2011 19:17:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>NOTAM &#8211; Notice to AirMen &#8211; AISWEB</title>
		<link>http://icarosouza.net/blog/?p=148</link>
		<comments>http://icarosouza.net/blog/?p=148#comments</comments>
		<pubDate>Sun, 12 Dec 2010 19:24:22 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=148</guid>
		<description><![CDATA[php curl notam aisweb]]></description>
			<content:encoded><![CDATA[<p>Opa pessoal a pedido do nosso amigo Fonseca da GOLv, estou postando aqui o script de captura do NOTAM pela aisweb.</p>
<p>Usa-se CURL.</p>
<p><a href="http://icarosouza.net/examples/aisweb_notam.php?icao=sbfz">exemplo</a></p>
<p>Abraços.</p>
<pre class="brush: php; title: ;">
&lt;?php

function aisWeb($icao){
  if(strlen($icao)==0 || strlen($icao)!=4){
    return 'Código ICAO incorreto';
    exit;
  }

 $icao = strtoupper($icao);

function get_web_page( $url,$curl_data )
{
    $options = array(
        CURLOPT_RETURNTRANSFER =&gt; true,         // return web page
        CURLOPT_HEADER         =&gt; false,        // don't return headers
        CURLOPT_FOLLOWLOCATION =&gt; true,         // follow redirects
        CURLOPT_ENCODING       =&gt; &quot;&quot;,           // handle all encodings
        CURLOPT_USERAGENT      =&gt; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040608&quot;,
        CURLOPT_FILETIME       =&gt; false,
        CURLOPT_FRESH_CONNECT  =&gt; true,
        CURLOPT_AUTOREFERER    =&gt; true,         // set referer on redirect
        CURLOPT_NOSIGNAL       =&gt; false,
        CURLOPT_CONNECTTIMEOUT =&gt; 300,          // timeout on connect
        CURLOPT_TIMEOUT        =&gt; 300,          // timeout on response
        CURLOPT_MAXREDIRS      =&gt; 10,           // stop after 10 redirects
        CURLOPT_POST           =&gt; 1,            // i am sending post data
        CURLOPT_POSTFIELDS     =&gt; $curl_data,    // this are my post vars
        CURLOPT_SSL_VERIFYHOST =&gt; 0,            // don't verify ssl
        CURLOPT_SSL_VERIFYPEER =&gt; false,        //
        CURLOPT_VERBOSE        =&gt; 1                //
    );

    $ch      = curl_init($url);
    curl_setopt_array($ch,$options);
    $content = curl_exec($ch);
    $err     = curl_errno($ch);
    $errmsg  = curl_error($ch) ;
    $header  = curl_getinfo($ch);
    $codehttp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;

   if($codehttp==200){
        return $header['content'];
     }else{
        return $header['content'] = 'Erro interno:'.$codehttp;
     }
}

$curl_data = array(
                    'radioFilter' =&gt;'I',
                    'filtro0' =&gt; $icao,
                    'filtro1' =&gt; '',
                    'filtro2' =&gt; '',
                    'filtro3' =&gt; '',
                    'filtro4' =&gt; '',
                    'filtro5' =&gt; '',
                    'filtro6' =&gt; '',
                    'filtro7' =&gt; '',
                    'filtro8' =&gt; '',
                    'filtro9' =&gt; '',
                    'lingua'  =&gt; 'N'
                    );
$url = &quot;http://www.aisweb.aer.mil.br/aisweb/PesquisaBoletimLocalidade.do&quot;;
$response = get_web_page($url,$curl_data);

//$tratado = preg_replace(&quot;/&lt;a href=\&quot;..\/(.*)\&quot; target=\&quot;_blank\&quot;&gt;/&quot;, &quot;&lt;a href=\&quot;http://www.aisweb.aer.mil.br/\${1}\&quot; target=\&quot;_blank\&quot;&gt;&quot;, $response);
$tratado = trim($response);
$tratado = preg_replace(&quot;/&lt;img border=\&quot;0\&quot; src=\&quot;imagens\/(.*)\&quot;&gt;/&quot;, &quot;&lt;img src=\&quot;http://www.aisweb.aer.mil.br/aisweb/imagens/\${1}\&quot; border=\&quot;0\&quot;&gt;&quot;, $tratado);
$primeiraPos = strrpos($tratado, 'Boletim');
$ultimaPos = strrpos($tratado ,'&lt;!--');
$ultimoPos2 = strrpos($tratado, '&gt;');
$tratado = substr($tratado,$primeiraPos);
$tratado = str_replace(array(&quot;\n&quot;, &quot;\t&quot;, &quot;&lt;/td&gt;&quot;, &quot;&lt;/tr&gt;&quot;, &quot;&lt;/tbody&gt;&quot;, &quot;&lt;/table&gt;&quot;,&quot;&lt;hr size=\&quot;1\&quot;&gt;&quot;,&quot;&lt;!--Fim Conteudo main--&gt;&quot;),'',$tratado);

$tratado = str_replace(&quot;&lt;p align=\&quot;center\&quot;&gt;---| FIM DA LISTAGEM |---&lt;/p&gt;&quot;,'&lt;p align=\&quot;center\&quot;&gt;---| icarosouza.net |---&lt;/p&gt;',$tratado);
$tratado = str_replace('&lt;div align=&quot;right&quot;&gt;','&lt;div&gt;',$tratado);
$tratado = str_replace(&quot;&lt;img src=\&quot;imagens/Sup.gif\&quot;&gt;&quot;,&quot;&lt;img src=\&quot;http://www.aisweb.aer.mil.br/aisweb/imagens/Sup.gif\&quot;&gt;&quot;,$tratado);
$tratado = str_replace(&quot;&lt;table width=\&quot;100%\&quot; border=\&quot;0\&quot; cellspacing=\&quot;3\&quot; cellpadding=\&quot;0\&quot;&gt;&quot;,&quot;&lt;table class=\&quot;texto\&quot; align=\&quot;center\&quot;&gt;&lt;tbody&gt; &lt;tr&gt; &lt;td&gt;\n&lt;table class=\&quot;texto\&quot; align=\&quot;center\&quot;&gt;\n\t\t\t\t\t\t\t&lt;tbody&gt;&quot;, $tratado);
$tratado = str_replace(&quot;&lt;td class=\&quot;titulo_campo\&quot; align=\&quot;center\&quot; bgcolor=\&quot;#E5E5E5\&quot;&gt;&quot;,&quot;&lt;td class=\&quot;fundo4\&quot; align=\&quot;center\&quot; nowrap=\&quot;nowrap\&quot;&gt;&quot;, $tratado);
//$tratado = str_replace(&quot;&lt;td class=\&quot;texto_campo\&quot; align=\&quot;center\&quot;&gt;&quot;,&quot;&lt;td class=\&quot;fundo4\&quot; align=\&quot;center\&quot; nowrap=\&quot;nowrap\&quot;&gt;&quot;, $tratado);
//$tratado = str_replace(&quot;&lt;td class=\&quot;texto_campo\&quot;&gt;&quot;, &quot;&lt;td class=\&quot;fundo1\&quot; align=\&quot;left\&quot;&gt;&quot;, $tratado);
$tratado = preg_replace('|\s{2,}|', ' ', $tratado);

$GLOBALS['classTd']=0;
function call_back($matches){

    if($GLOBALS['classTd']==0){
       $GLOBALS['fundoTd']='fundo1';
       $GLOBALS['classTd']=1;
    }else{
       $GLOBALS['fundoTd']='fundo2';
       $GLOBALS['classTd']=0;
    }
       return '&lt;td class=&quot;'.$GLOBALS['fundoTd'].'&quot; align=&quot;center&quot;&gt;';

}

$tratado = preg_replace_callback(&quot;/&lt;td class=\&quot;(.*)\&quot; align=\&quot;center\&quot;&gt;/&quot;,&quot;call_back&quot;,$tratado);
$tratado = preg_replace_callback(&quot;/&lt;td class=\&quot;texto_campo\&quot;&gt;/&quot;,&quot;call_back&quot;,$tratado);

$tratado = str_replace(&quot;&lt;/table&gt;&quot;, &quot;&lt;/tbody&gt;&lt;/table&gt;&quot;, $tratado);
$buscar = array('&lt;/body&gt;','&lt;/html&gt;');
$tratado = str_replace($buscar, '', $tratado);
return $tratado;
}
$aisWeb = aisWeb($_GET['icao']);
?&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;http://www.voevesper.com.br/css/estilos.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;table class=&quot;texto2&quot; align=&quot;center&quot; width=&quot;98%&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;?php echo $aisWeb; ?&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=148</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listar pilotos em voo com dados da IVAO</title>
		<link>http://icarosouza.net/blog/?p=141</link>
		<comments>http://icarosouza.net/blog/?p=141#comments</comments>
		<pubDate>Sat, 11 Dec 2010 23:46:52 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=141</guid>
		<description><![CDATA[Opa pessoal depois de um bom tempo sem postar, trago aqui um post onde ele resgata os dados dos servidores da IVAO e os trata exibindo somente o necessário. No exemplo só escolhi trazer &#8220;callsign origem>destino&#8221;, tendo outras muitas variáveis para exibir. nesse link você encontra os nomes das variaveis http://network.ivao.aero/clients_section. Esse script ele baixa [...]]]></description>
			<content:encoded><![CDATA[<p>Opa pessoal depois de um bom tempo sem postar, trago aqui um post onde ele resgata os dados dos servidores da IVAO e os trata exibindo somente o necessário.</p>
<p>No exemplo só escolhi trazer &#8220;callsign origem>destino&#8221;, tendo outras muitas variáveis para exibir.<br />
nesse link você encontra os nomes das variaveis http://network.ivao.aero/clients_section.</p>
<p>Esse script ele baixa um arquivo compactado contendo os dados dos servidores, por isso é necessário de leitura &#038; escrita(777) no arquivo whazzup.txt, se o mesmo não existir crie e dê permissão.<br />
<a href="http://icarosouza.net/examples/listarpilotos.php">Exemplo</a></p>
<p>Na função associado ela somente exibe os VID que estão no array, portanto está comentada pra exibir todos os pilotos de uma companhia.</p>
<p>Abraços.</p>
<pre class="brush: php; title: ;">
&lt;?php

// nome das variaveis http://network.ivao.aero/clients_section
// para server linux crie o arquivo whazzup.txt no mesmo diretorio e dê permissão 777.

function associado($vid){
    $vids = array('300284', '205427', '268298', '312088');
    if(in_array($vid,$vids)){
        return true;
       }
 }

$server1 = 'http://de3.www.ivao.aero/whazzup.txt.gz';
$server2 = 'http://am1.www.ivao.aero/whazzup.txt.gz';
if(!$zd = gzopen($server1, &quot;r&quot;)){
$zd = gzopen($server2, &quot;r&quot;);
}
$contents = gzread($zd,99999999);
gzclose($zd);
$p = fopen(&quot;whazzup.txt&quot;,&quot;w&quot;);
fwrite($p, $contents);
fclose($p);
$lines = file('whazzup.txt', FILE_SKIP_EMPTY_LINES);

function arr_search ( $array, $expression ) {
    $result = array();
    $expression = preg_replace ( &quot;/([^\s]+?)(=|&lt;|&gt;|!)/&quot;, &quot;\$a['$1']$2&quot;, $expression );
    foreach ( $array as $a )
    if (ereg($expression,$a) )
     $result[] = $a;
    return $result;
}

$a = array('callsign','vid','realname','clienttype','frequency','latitude','longitude',
'altitude','groundspeed','planned_aircraft','planned_tascruise','planned_depairport'
,'planned_altitude','planned_destairport','server','protrevision','rating','transponder'
,'facilitytype','visualrange','planned_revision','planned_flighttype','planned_deptime'
,'planned_actdeptime','planned_hrsenroute','planned_minenroute','planned_hrsfuel'
,'planned_minfuel','planned_altairport','planned_remarks','planned_route','planned_depairport_lat'
,'planned_depairport_lon','planned_destairport_lat','planned_destairport_lon','atis_message'
,'time_last_atis_received','time_connected','client_software_name','client_software_version'
,'adminrating','atc_or_pilotrating','planned_altairport2','planned_typeofflight','planned_pob'
,'true_heading','onground','');
$pilotos =arr_search ( $lines, &quot;SB&quot; );

foreach($pilotos as $dados){
    $dados=explode(':', $dados);
    $array[]=array_combine($a, $dados);
}

?&gt;
&lt;div id=&quot;aeronaves&quot;&gt;
  &lt;table style=&quot;font-size: x-small&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
  &lt;tbody&gt;
  &lt;?php
  foreach($array as $dados){
       if($dados['clienttype']=='PILOT'){
         $dados['airline'] = substr($dados['callsign'],0,3);
        if($dados['airline']=='GLO' &amp;&amp; associado($dados['vid'])){
          $dados['realname'] = ucwords(strtolower($dados['realname']));
          $dados['realname'] = substr($dados['realname'],0,-5);
          $aeronave=explode('/',$dados['planned_aircraft']);
          echo'&lt;tr&gt;&lt;td&gt;';
          echo utf8_encode($dados['callsign']).' '.$dados['planned_depairport'].'&gt;'.$dados['planned_depairport'];
          echo'&lt;/td&gt;&lt;/tr&gt;';

    }
  }
 }
?&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=141</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataBase AIRAC 1210 MySQL</title>
		<link>http://icarosouza.net/blog/?p=138</link>
		<comments>http://icarosouza.net/blog/?p=138#comments</comments>
		<pubDate>Sat, 11 Dec 2010 19:54:55 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=138</guid>
		<description><![CDATA[Opa pessoal segue db do AIRAC 1210, contendo waypoints,airports,airways,NAVids. É só deixar a imaginação rolar e criar coisas bem legais. Bom proveito, abraços. airportlookup airports airwaylegs airways config ilses navaidlookup navaids navaidtypes runways surfacetypes terminallegs terminallegsex terminals trmlegtypes waypointlookup waypoints http://icarosouza.net/examples/airac1210.rar]]></description>
			<content:encoded><![CDATA[<p>Opa pessoal segue db do AIRAC 1210, contendo waypoints,airports,airways,NAVids.</p>
<p>É só deixar a imaginação rolar e criar coisas bem legais.</p>
<p>Bom proveito, abraços.</p>
<p><code> airportlookup<br />
 airports<br />
 airwaylegs<br />
 airways<br />
 config<br />
 ilses<br />
 navaidlookup<br />
 navaids<br />
 navaidtypes<br />
 runways<br />
 surfacetypes<br />
 terminallegs<br />
 terminallegsex<br />
 terminals<br />
 trmlegtypes<br />
 waypointlookup<br />
 waypoints</code></p>
<p><a href="http://icarosouza.net/examples/airac1210.rar">http://icarosouza.net/examples/airac1210.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=138</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Get Dados Membros IVAO</title>
		<link>http://icarosouza.net/blog/?p=122</link>
		<comments>http://icarosouza.net/blog/?p=122#comments</comments>
		<pubDate>Sun, 11 Jul 2010 23:02:32 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=122</guid>
		<description><![CDATA[Antiga função pegar dados do membro ivao, agora com mais dados. Post anterior: http://icarosouza.net/blog/?p=75 Sem mais, dúvidas só comentar que respondo, abraços. OBS: sem módulo CURL nem adianta rodar. Exemplo &#60;?php if(puxarVid($_GET['vid'])){ $array_vid = puxarVid($_GET['vid']); }else{ $array_vid['piloto'] = &#34;piloto não existe&#34;; } if($array_vid['horas']){ $array_vid['horas'] = $array_vid['horas'].':'.$array_vid['minutos']; } ?&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=iso-8859-1&#34; /&#62; &#60;link rel=&#34;stylesheet&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Antiga função pegar dados do membro ivao, agora com mais dados.</p>
<p>Post anterior: http://icarosouza.net/blog/?p=75</p>
<p>Sem mais, dúvidas só comentar que respondo, abraços.</p>
<p>OBS: sem módulo CURL nem adianta rodar.</p>
<p><a href="http://icarosouza.net/examples/ivao.php?vid=255888">Exemplo</a></p>
<pre class="brush: php; title: ;">
&lt;?php
if(puxarVid($_GET['vid'])){
   $array_vid = puxarVid($_GET['vid']);
}else{
  $array_vid['piloto'] = &quot;piloto não existe&quot;;
}

if($array_vid['horas']){
$array_vid['horas'] = $array_vid['horas'].':'.$array_vid['minutos'];
}
?&gt;
</pre>
<pre class="brush: xml; title: ;">

&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;http://www.voevesper.com.br/css/estilos.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;

&lt;table class=&quot;texto2&quot; width=&quot;37%&quot;&gt;
    &lt;tbody&gt;
            &lt;tr&gt;
           &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Piloto&lt;/td&gt;
           &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Horas&lt;/td&gt;
           &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Rating&lt;/td&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['piloto'];?&gt;&lt;/td&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['horas'];?&gt;&lt;/td&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['rating'];?&gt;&lt;/td&gt;
          &lt;/tr&gt;
         &lt;tr&gt;
         &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Criado Desde&lt;/td&gt;
         &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Status&lt;/td&gt;
         &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Cidade&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['criadoDesde'];?&gt;&lt;/td&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['statusUsuario'];?&gt;&lt;/td&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['cidade'];?&gt;&lt;/td&gt;
           &lt;/tr&gt;
          &lt;tr&gt;
         &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Última Conexão&lt;/td&gt;
         &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Skype&lt;/td&gt;
         &lt;td class=&quot;fundo4&quot; align=&quot;center&quot; nowrap=&quot;nowrap&quot;&gt;Pais&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['ultimaConexao'];?&gt;&lt;/td&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['skype'];?&gt;&lt;/td&gt;
           &lt;td class=&quot;fundo2&quot; align=&quot;center&quot;&gt;&lt;?php echo$array_vid['pais'];?&gt;&lt;/td&gt;
           &lt;/tr&gt;

    &lt;/tbody&gt;
    &lt;/table&gt;
</pre>
<p><strong><em>Função</em></strong></p>
<pre class="brush: php; title: ;">
&lt;?php

function curl($url){
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, 'http://ivao.aero/login.asp');
   curl_setopt ($ch, CURLOPT_POST, 1);
   curl_setopt ($ch, CURLOPT_POSTFIELDS, 'Id=XXXXXX&amp;Pwd=*******&amp;Cookie=ON'); //Id=seu VID  &amp; Pwd= sua Website Password
   curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
   $store = curl_exec ($ch);
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
   $content = curl_exec ($ch);
   curl_close ($ch);
   return $content;
}

function puxarVid($vid){
   if(!isset($vid)){
      return false;
   }

$content = curl('http://ivao.aero/members/person/details3.asp?ID='.$vid);
$content2 = curl('http://ivao.aero/members/person/details6.asp?ID='.$vid);
$content3 = curl('http://ivao.aero/members/person/details.asp?ID='.$vid);

    if(preg_match(&quot;/&lt;font size=\&quot;2\&quot;&gt;(.*)&lt;br&gt;Last online at &lt;b&gt;(.*)&lt;\/b&gt; UTC&lt;\/font&gt;/s&quot;, $content2, $ultimaConexao)){
      $result['ultimaConexao'] = $ultimaConexao[2];
    }else{
      $result['ultimaConexao'] = 'sem informação';
    }

    if(preg_match(&quot;/&lt;B&gt;City&lt;\/B&gt;:&amp;nbsp;(.*)&lt;\/font&gt;/&quot;, $content3, $cidade)){
      $result['cidade'] = $cidade[1];
    }else{
      $result['cidade'] = 'não encontrado';
    }

    if(preg_match(&quot;/&lt;B&gt;Division&lt;\/B&gt;:&amp;nbsp;(.*)&lt;\/font&gt;/&quot;, $content3, $pais)){
      $result['pais'] = $pais[1];
    }else{
      $result['pais'] = 'não encontrado';
    }

    if(preg_match(&quot;/&lt;A HREF=\&quot;CALLTO:\/\/(.*)\&quot;&gt;/&quot;, $content3, $skype)){
      $result['skype'] = $skype[1];
    }else{
      $result['skype'] = 'não encontrado';
    }

    if(preg_match_all(&quot;/&lt;font size=\&quot;2\&quot;(.*)&gt;&lt;b&gt;([a-zA-Z]*) User&lt;\/b&gt;&lt;\/font&gt;/&quot;,$content3,$statusUsuario)){
       $result['statusUsuario'] = $statusUsuario[2][0];
    }else{
       $result['statusUsuario'] = 'sem informação';
    }

    if(preg_match_all(&quot;/&lt;font size=\&quot;2\&quot;&gt;([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4}) (.*) UTC&lt;\/font&gt;/&quot;, $content3, $criadoDesde)){
       $result['criadoDesde'] = $criadoDesde[1][0].'/'.$criadoDesde[2][0].'/'.$criadoDesde[3][0].' '.$criadoDesde[4][0];
    }else{
       $result['criadoDesde'] = 'sem informação';
    }

    if( eregi(&quot;([0-9]*) hours and ([0-9]*) minutes,&amp;nbsp;flown.&quot;,$content,$gup ) ){
       $result['horas'] = $gup[1];
       $result['minutos'] = $gup[2];

    if(preg_match(&quot;/&lt;title&gt;IVAO - Member Details of(.*?)&lt;\/title&gt;/s&quot;, $content, $return)){
       $result['piloto'] = $return[1];
    }else{
      $result['piloto'] = 'sem informaçao';
    }

    preg_match_all(&quot;/ title=\&quot;(.*)\&quot;&gt;/U&quot;, $content, $teste);

    foreach( $teste as $key =&gt; $value){
        foreach($teste[$key] as $key2 =&gt; $value2){
            switch ($value2) {
                case 'Basic Flight Student':
                    $result['rating'] = $value2;
                    break;
                case 'Flight Student':
                    $result['rating'] = $value2;
                    break;
                case 'Advanced Flight Student':
                    $result['rating'] = $value2;
                    break;
                case 'Private Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Senior Private Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Commercial Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Airline Transport Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Senior Flight Instructor':
                    $result['rating'] = $value2;
                    break;
                case 'Chief Flight Instructor':
                    $result['rating'] = $value2;
                    break;
                default:
                    next($teste[$key]);
            }

        }

    }
        return $result;
        //retorna array com os dados [piloto]  [rating]  [horas] [minutos]
    }else{
        return false;
        //VID não encontrado
   }
}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=122</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Get Cartas AISWEB</title>
		<link>http://icarosouza.net/blog/?p=105</link>
		<comments>http://icarosouza.net/blog/?p=105#comments</comments>
		<pubDate>Fri, 09 Jul 2010 02:53:28 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[Classes]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=105</guid>
		<description><![CDATA[Função retornar dados com a tabela de cartas online do AISWEB.]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, novamente com internet, esperava instalar GVT mas ainda não chegaram até meu bairro, tive que me conformar com a &#8220;BOI&#8221;.</p>
<p>Tinha feito essa função a um tempo atrás, mas devido ao meu probleminha não tive como postar, segue a função.</p>
<p><a href="http://icarosouza.net/examples/aisweb.php?icao=sbfz" target="_blank">Exemplo</a></p>
<pre class="brush: php; title: ;">
&lt;?php
/*Como chamar a função?
Simples, como qualquer outra.

*/
$icao=='SBFZ';    //variável ICAO, no qual irá conter o código do aeroporto com quatro caracteres.

$aisWeb = aisWeb(  $icao    ) ;

echo '&lt;link rel=&quot;stylesheet&quot; href=&quot;http://www.voevesper.com.br/css/estilos.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;table class=&quot;texto2&quot; align=&quot;center&quot; width=&quot;98%&quot;&gt;
    &lt;tr&gt;
        &lt;td&gt;
                '.$aisWeb.'
        &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;';

//A função irá retornar uma tabela contendo os dados.
?&gt;
</pre>
<p>OBS: lembrando é necessário o módulo CURL para o funcionamento da função, sem o mesmo nem adianta.. xD</p>
<p><strong>Não esqueçam dos créditos galera&#8230;.</strong></p>
<p>Abraços.</p>
<pre class="brush: php; title: ;">
&lt;?php

function aisWeb($icao){
  if(strlen($icao)==0 || strlen($icao)!=4){
    return 'Código ICAO incorreto';
    exit;
  }

  strtoupper($icao);

function get_web_page( $url,$curl_data )
{
    $options = array(
        CURLOPT_RETURNTRANSFER =&gt; true,         // return web page
        CURLOPT_HEADER         =&gt; false,        // don't return headers
        CURLOPT_FOLLOWLOCATION =&gt; true,         // follow redirects
        CURLOPT_ENCODING       =&gt; &quot;&quot;,           // handle all encodings
        CURLOPT_USERAGENT      =&gt; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040608&quot;,
        CURLOPT_FILETIME       =&gt; false,
        CURLOPT_FRESH_CONNECT  =&gt; true,
        CURLOPT_AUTOREFERER    =&gt; true,         // set referer on redirect
        CURLOPT_NOSIGNAL       =&gt; false,
        CURLOPT_CONNECTTIMEOUT =&gt; 300,          // timeout on connect
        CURLOPT_TIMEOUT        =&gt; 300,          // timeout on response
        CURLOPT_MAXREDIRS      =&gt; 10,           // stop after 10 redirects
        CURLOPT_POST           =&gt; 1,            // i am sending post data
        CURLOPT_POSTFIELDS     =&gt; $curl_data,    // this are my post vars
        CURLOPT_SSL_VERIFYHOST =&gt; 0,            // don't verify ssl
        CURLOPT_SSL_VERIFYPEER =&gt; false,        //
        CURLOPT_VERBOSE        =&gt; 1                //
    );

    $ch      = curl_init($url);
    curl_setopt_array($ch,$options);
    $content = curl_exec($ch);
    $err     = curl_errno($ch);
    $errmsg  = curl_error($ch) ;
    $header  = curl_getinfo($ch);
    $codehttp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;

   if($codehttp==200){
        return $header['content'];
     }else{
        return $header['content'] = 'Erro interno:'.$codehttp;
     }
}

$curl_data = array(
                    'radioFilter' =&gt;'I',
                    'filtro0' =&gt; $icao,
                    'filtro1' =&gt; '',
                    'filtro2' =&gt; '',
                    'filtro3' =&gt; '',
                    'filtro4' =&gt; '',
                    'filtro5' =&gt; '',
                    'filtro6' =&gt; '',
                    'filtro7' =&gt; '',
                    'filtro8' =&gt; '',
                    'filtro9' =&gt; '',
                    );
$url = &quot;http://www.aisweb.aer.mil.br/aisweb/PesquisaCartas.do&quot;;
$response = get_web_page($url,$curl_data);

$tratado = preg_replace(&quot;/&lt;a href=\&quot;..\/(.*)\&quot; target=\&quot;_blank\&quot;&gt;/&quot;, &quot;&lt;a href=\&quot;http://www.aisweb.aer.mil.br/\${1}\&quot; target=\&quot;_blank\&quot;&gt;&quot;, $response);
$tratado = trim($tratado);
$tratado = preg_replace(&quot;/&lt;img border=\&quot;0\&quot; src=\&quot;imagens\/(.*)\&quot;&gt;/&quot;, &quot;&lt;img src=\&quot;http://www.aisweb.aer.mil.br/aisweb/imagens/\${1}\&quot; border=\&quot;0\&quot;&gt;&quot;, $tratado);
$primeiraPos = strrpos($tratado, 'Cartas');
$ultimaPos = strrpos($tratado ,'&lt;!--');
$ultimoPos2 = strrpos($tratado, '&gt;');
$tratado = substr($tratado,$primeiraPos);
$tratado = str_replace(&quot;&lt;img src=\&quot;imagens/Sup.gif\&quot;&gt;&quot;,&quot;&lt;img src=\&quot;http://www.aisweb.aer.mil.br/aisweb/imagens/Sup.gif\&quot;&gt;&quot;,$tratado);
$tratado = str_replace(&quot;&lt;table width=\&quot;100%\&quot; border=\&quot;0\&quot; cellspacing=\&quot;3\&quot; cellpadding=\&quot;0\&quot;&gt;&quot;,&quot;&lt;table class=\&quot;texto\&quot; align=\&quot;center\&quot;&gt;&lt;tbody&gt; &lt;tr&gt; &lt;td&gt;\n&lt;table class=\&quot;texto\&quot; align=\&quot;center\&quot;&gt;\n\t\t\t\t\t\t\t&lt;tbody&gt;&quot;, $tratado);
$tratado = str_replace(&quot;&lt;td class=\&quot;titulo_campo\&quot; align=\&quot;center\&quot; bgcolor=\&quot;#E5E5E5\&quot;&gt;&quot;,&quot;&lt;td class=\&quot;fundo4\&quot; align=\&quot;center\&quot; nowrap=\&quot;nowrap\&quot;&gt;&quot;, $tratado);
//$tratado = str_replace(&quot;&lt;td class=\&quot;texto_campo\&quot; align=\&quot;center\&quot;&gt;&quot;,&quot;&lt;td class=\&quot;fundo4\&quot; align=\&quot;center\&quot; nowrap=\&quot;nowrap\&quot;&gt;&quot;, $tratado);
//$tratado = str_replace(&quot;&lt;td class=\&quot;texto_campo\&quot;&gt;&quot;, &quot;&lt;td class=\&quot;fundo1\&quot; align=\&quot;left\&quot;&gt;&quot;, $tratado);

$GLOBALS['classTd']=0;
function call_back($matches){

    if($GLOBALS['classTd']==0){
       $GLOBALS['fundoTd']='fundo1';
       $GLOBALS['classTd']=1;
    }else{
       $GLOBALS['fundoTd']='fundo2';
       $GLOBALS['classTd']=0;
    }
       return '&lt;td class=&quot;'.$GLOBALS['fundoTd'].'&quot; align=&quot;center&quot;&gt;';

}

$tratado = preg_replace_callback(&quot;/&lt;td class=\&quot;(.*)\&quot; align=\&quot;center\&quot;&gt;/&quot;,&quot;call_back&quot;,$tratado);
$tratado = preg_replace_callback(&quot;/&lt;td class=\&quot;texto_campo\&quot;&gt;/&quot;,&quot;call_back&quot;,$tratado);

$tratado = str_replace(&quot;&lt;/table&gt;&quot;, &quot;&lt;/tbody&gt;&lt;/table&gt;&quot;, $tratado);
$buscar = array('&lt;/body&gt;','&lt;/html&gt;');
$tratado = str_replace($buscar, '', $tratado);
return $tratado;
}
$aisWeb = aisWeb($_GET['icao']);
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=105</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quadro de Informações</title>
		<link>http://icarosouza.net/blog/?p=98</link>
		<comments>http://icarosouza.net/blog/?p=98#comments</comments>
		<pubDate>Wed, 09 Dec 2009 00:42:44 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=98</guid>
		<description><![CDATA[Olá pessoal segue mais uma função essencial, contendo informações de aerodromo (pistas,frequencias ILS, informação METAR, e mapa do aerodromo) Pessoal não irei disponibilizar o código fonte, devido ao banco de dados ondem contem as informações, futuramente irei disponibilizar o acesso para consultar ao BD. Quem tiver a base dados AIRAC, entre em contato comigo que [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal segue mais uma função essencial, contendo informações de aerodromo (pistas,frequencias ILS, informação METAR, e mapa do aerodromo)</p>
<p>Pessoal não irei disponibilizar o código fonte, devido ao banco de dados ondem contem as informações, futuramente irei disponibilizar o acesso para consultar ao BD.</p>
<p>Quem tiver a base dados AIRAC, entre em contato comigo que irei repassar o fonte.</p>
<p>O METAR pode as vezes demorar um pouco a exibir deivido ao fato das informações METAR virem do servidor NOAA como no post anterior METAR e TAF.</p>
<p>Exemplo <a href="http://icarosouza.net/consultaaero/?icao=SBFZ">http://icarosouza.net/consultaaero/?icao=SBFZ</a></p>
<pre class="brush: php; title: ;">
&lt;?php
//Exemplo de implementação

$icao = 'SBFZ'; //cria variavel com valor SBFZ ou seja variavel ICAO
$teste = file_get_contents(&quot;http://icarosouza.net/consultaaero/?icao=&quot;.$icao); //le quadro de informações e grava na variavel como string
echo $teste; //exibir conteúdo
//dai vc customiza e imprime a variavel onde achar necessário...
?&gt;
</pre>
<p>Mas porque não Webservice? Galera fiz isso somente pra hobbie.. </p>
<p>Dúvidas postem aqui.<br />
Abraços</p>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=98</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pegar dados do piloto junto a IVAO</title>
		<link>http://icarosouza.net/blog/?p=75</link>
		<comments>http://icarosouza.net/blog/?p=75#comments</comments>
		<pubDate>Fri, 06 Nov 2009 01:51:18 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[da IVAO]]></category>
		<category><![CDATA[horas de voo]]></category>
		<category><![CDATA[ivao]]></category>
		<category><![CDATA[pegar dados]]></category>
		<category><![CDATA[rating]]></category>
		<category><![CDATA[vid]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=75</guid>
		<description><![CDATA[Olá pessoal segue uma função que necessitei criar para uma administração melhor das inscrições, verificar horas de voo do piloto,nome e rating direto na página.]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal segue uma função que necessitei criar para uma administração melhor das inscrições, verificar horas de voo do piloto,nome e rating direto na página.</p>
<p>Para consultar necessita de um cadastro ativo na IVAO e senha, a senha a ser usada é a mesma usada no site da IVAO para atualizar cadastro.</p>
<p>[<em>Necessita da biblioteca Client URL Library (CURL) instalada</em>]</p>
<p>Segue exemplo de uso</p>
<pre class="brush: php; title: ;">
&lt;?php
$array_vid = puxarVid(255888);
//a função retorna um array contendo os dados
echo $array_vid['piloto']; //imprime Icaro Souza Pereira
echo $array_vid['rating']; //imprime Private Pilot
echo $array_vid['horas']; //imprime 707
echo $array_vid['minutos']; //imprime 19
?&gt;
</pre>
<p>Exemplo em uso: <a href=" http://icarosouza.net/examples/ivao.php?vid=255888">clique aqui</a></p>
<p><strong>Por favor usem com responsabilidade</strong></p>
<pre class="brush: php; title: ;">
&lt;?php
function puxarVid($vid){
if(!isset($vid)){
    return 'vid não encontrado';
}
$vid='http://ivao.aero/members/person/details3.asp?ID='.$vid;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://ivao.aero/login.asp');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'Id=SEUVID&amp;Pwd=SUASENHA&amp;Cookie=ON'); //Id=seu VID  &amp; Pwd= sua Website Password
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
curl_setopt($ch, CURLOPT_URL, $vid);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$content = curl_exec ($ch);
curl_close ($ch);

if( eregi(&quot;([0-9]*) hours and ([0-9]*) minutes,&amp;nbsp;flown.&quot;,$content,$gup ) ){
  $result['horas'] = $gup[1];
  $result['minutos'] = $gup[2];

    preg_match(&quot;/&lt;title&gt;IVAO - Member Details of(.*?)&lt;\/title&gt;/s&quot;, $content, $return);
    $result['piloto'] = $return[1];

    preg_match_all(&quot;/ title=\&quot;(.*)\&quot;&gt;/U&quot;, $content, $teste);

    foreach( $teste as $key =&gt; $value){
        foreach($teste[$key] as $key2 =&gt; $value2){
            switch ($value2) {
                case 'Basic Flight Student':
                    $result['rating'] = $value2;
                    break;
                case 'Flight Student':
                    $result['rating'] = $value2;
                    break;
                case 'Advanced Flight Student':
                    $result['rating'] = $value2;
                    break;
                case 'Private Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Senior Private Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Commercial Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Airline Transport Pilot':
                    $result['rating'] = $value2;
                    break;
                case 'Senior Flight Instructor':
                    $result['rating'] = $value2;
                    break;
                case 'Chief Flight Instructor':
                    $result['rating'] = $value2;
                    break;
                default:
                    next($teste[$key]);
            }

        }

    }
        return $result;
        //retorna array com os dados [piloto]  [rating]  [horas] [minutos]
    }else{
        return false;
        //VID não encontrado
}

}
?&gt;
</pre>
<p>Não me responsabilizo pelo uso indevido do programa.</p>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=75</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Requisição de METAR e TAF via PHP</title>
		<link>http://icarosouza.net/blog/?p=65</link>
		<comments>http://icarosouza.net/blog/?p=65#comments</comments>
		<pubDate>Thu, 05 Nov 2009 04:50:52 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[metar]]></category>
		<category><![CDATA[noaa]]></category>
		<category><![CDATA[taf]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=65</guid>
		<description><![CDATA[Função para requisição de METAR/TAF via PHP. Exemplo de uso: &#60;?php echo requisitarMetar('SBFZ'); //retorna METAR echo requisitarMetar('SBFZ', false); //retorna TAF ?&#62; &#60;?php function requisitarMetar($icao, $tipo = true){ if($tipo ==true){ $metar=&#34;ftp://tgftp.nws.noaa.gov/data/observations/metar/decoded/&#34;.strtoupper($icao).&#34;.TXT&#34;; }else{ $metar=&#34;ftp://tgftp.nws.noaa.gov/data/forecasts/taf/stations/&#34;.strtoupper($icao).&#34;.TXT&#34;; } if (file_exists($metar)) { $metar = fopen($metar, &#34;r&#34;); if ($metar) { while (!feof($metar)) { $out .= nl2br( fgets($metar, 4096) ); } fclose($metar); $palavras [...]]]></description>
			<content:encoded><![CDATA[<p>Função para requisição de METAR/TAF via PHP.</p>
<p>Exemplo de uso:<br />
<code></p>
<pre class="brush: php; title: ;">
&lt;?php

echo requisitarMetar('SBFZ'); //retorna METAR
echo requisitarMetar('SBFZ', false); //retorna TAF
?&gt;
</pre>
<p></code></p>
<pre class="brush: php; title: ;">&lt;?php

function requisitarMetar($icao, $tipo = true){
    if($tipo ==true){
        $metar=&quot;ftp://tgftp.nws.noaa.gov/data/observations/metar/decoded/&quot;.strtoupper($icao).&quot;.TXT&quot;;
    }else{
        $metar=&quot;ftp://tgftp.nws.noaa.gov/data/forecasts/taf/stations/&quot;.strtoupper($icao).&quot;.TXT&quot;;
    }
    if (file_exists($metar)) {
        $metar = fopen($metar, &quot;r&quot;);
        if ($metar) {
            while (!feof($metar)) {
            $out .= nl2br( fgets($metar, 4096) );
           }
            fclose($metar);

            $palavras = array(&quot;Wind&quot;, &quot;Brazil&quot;, &quot;greater than&quot;, &quot;degrees&quot;, &quot;ENE&quot;, &quot;ESE&quot;, &quot;SSE&quot;, &quot;NNE&quot;, &quot;Visibility&quot;, &quot;Relative Humidity&quot;, &quot;Dew Point&quot;, &quot;Temperature&quot;, &quot;Pressure&quot;, &quot;altimeter&quot;);
            $alterar = array(&quot;Vento&quot;, &quot;Brasil&quot;, &quot;superior a&quot;, &quot;graus&quot;, &quot;lés-nordeste&quot;, &quot;lés-sudeste&quot;, &quot;su-sudeste&quot;, &quot;nor-nordeste&quot;,  &quot;Visibilidade&quot;, &quot;Humidade relativa&quot;, &quot;Ponto de Orvalho&quot;, &quot;Temperatura&quot;, &quot;Pressão atmosferica&quot;, &quot;altimetro&quot;);
            $out = str_replace($palavras, $alterar, $out);
            return $out;
         }
    }else{
        return &quot;Esse ICAO não existe.&quot;;
    }

}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calcular distância entre dois pontos no mapa</title>
		<link>http://icarosouza.net/blog/?p=1</link>
		<comments>http://icarosouza.net/blog/?p=1#comments</comments>
		<pubDate>Thu, 22 Oct 2009 07:10:09 +0000</pubDate>
		<dc:creator>Ícaro Souza</dc:creator>
				<category><![CDATA[Classes]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[calcular coordenadas]]></category>
		<category><![CDATA[calcular milhas]]></category>
		<category><![CDATA[coordenadas]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[retornar kilometros]]></category>

		<guid isPermaLink="false">http://icarosouza.net/blog/?p=1</guid>
		<description><![CDATA[Olá pessoal, segue abaixo uma classe para calcular entre dois pontos no mapa. Latitude/Longitude X Latitude/Longitude Argumentos CalcMiles ( [origem_latitude] float , [origem_longitude] float, [destino_latitude] float, [destino_longitude] float) getCalcMiles float = ( [unidadeDeMedida] string ) &#60;?php include &#34;./gps_class.php&#34;; //Exemplo de uso $distancia = new calcMiles (-3.776283, -38.532556, -23.432317, -46.469428); echo $distancia-&#62;getCalcMiles( &#34;kilometer&#34; ); //imprime float [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, segue abaixo uma classe para calcular entre dois pontos no mapa.<br />
Latitude/Longitude X Latitude/Longitude</p>
<p>Argumentos<br />
CalcMiles<br />
<code>( [origem_latitude] float , [origem_longitude] float, [destino_latitude] float, [destino_longitude] float)</code></p>
<p>getCalcMiles<br />
<code>float = ( [unidadeDeMedida] string )</code></p>
<pre class="brush: php; title: ;">
&lt;?php
 include &quot;./gps_class.php&quot;;
//Exemplo de uso
$distancia = new calcMiles (-3.776283, -38.532556, -23.432317, -46.469428);

echo $distancia-&gt;getCalcMiles( &quot;kilometer&quot; );
//imprime float 2346.1151098585

echo $distancia-&gt;getCalcMiles( &quot;nauticalmiles&quot; );
//imprime float 1266.7976738262

echo  $distancia-&gt;getCalcMiles();
//imprime float 2346.1151098585

?&gt;
</pre>
<p>Se não for declarado nenhuma medida, irá retornar em Quilômetro.</p>
<p>Unidades de medidas</p>
<p><code>"miles"<br />
"yards"<br />
"parsec"<br />
"nauticalmiles"<br />
"nanometer"<br />
"millimeter"<br />
"mil"<br />
"micrometer"<br />
"meter"<br />
"lightyear"<br />
"kilometer"<br />
"inches"<br />
"hectometer"<br />
"furlong"<br />
"feet"<br />
"dekameter"<br />
"centimeter"</code></p>
<pre class="brush: php; title: ;">
&lt;?php
class calcMiles {

	private $Lat1;
	private $Lon1;
	private $Lat2;
	private $Lon2;
	private $Units;
    private $Difference;
    private $lastResult;

public function __construct( $Lat1, $Lon1, $Lat2, $Lon2){

        if( is_float($Lat1) AND is_float($Lon1) AND is_float($Lat2) AND is_float($Lon2) ){

        $this-&gt;Lat1 = $Lat1;
        $this-&gt;Lon1 = $Lon1;
        $this-&gt;Lat2 = $Lat2;
        $this-&gt;Lon2 = $Lon2;
      	$this-&gt;Difference = 3958.75 * acos(  sin($this-&gt;Lat1/57.2958) * sin($this-&gt;Lat2/57.2958) + cos($this-&gt;Lat1/57.2958) * cos($this-&gt;Lat2/57.2958) * cos($this-&gt;Lon2/57.2958 - $this-&gt;Lon1/57.2958));

        }

    }

public function getCalcMiles( $Units = &quot;kilometer&quot;) {

    if(isset($Units) AND is_string($Units) ){
      $this-&gt;Units = $Units;

    	switch ( $this-&gt;Units ) {
			default:
			case &quot;&quot;:
			case &quot;miles&quot;:
				$this-&gt;Units = &quot;Miles&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 1;
				break;
			case &quot;yards&quot;:
				$this-&gt;Units = &quot;Yards&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 1760;
				break;
			case &quot;parsec&quot;:
				$this-&gt;Units = &quot;Parsecs&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 0.0000000000000521553443;
				break;
			case &quot;nauticalmiles&quot;:
				$this-&gt;Units = &quot;Nautical Miles&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 0.868974087;
				break;
			case &quot;nanometer&quot;:
				$this-&gt;Units = &quot;Nanometers&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 1609344000000;
				break;
			case &quot;millimeter&quot;:
				$this-&gt;Units = &quot;Millimeters&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 1609344;
				break;
			case &quot;mil&quot;:
				$this-&gt;Units = &quot;Mils&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 63360000;
				break;
			case &quot;micrometer&quot;:
				$this-&gt;Units = &quot;Micrometers&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 1609344000;
				break;
			case &quot;meter&quot;:
				$this-&gt;Units = &quot;Meters&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 1609.344;
				break;
			case &quot;lightyear&quot;:
				$this-&gt;Units = &quot;Light Years&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 0.0000000000001701114356;
				break;
			case &quot;kilometer&quot;:
				$this-&gt;Units = &quot;Kilometers&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 1.609344;
				break;
			case &quot;inches&quot;:
				$this-&gt;Units = &quot;Inches&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 63360;
				break;
			case &quot;hectometer&quot;:
				$this-&gt;Units = &quot;Hectometers&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 16.09344;
				break;
			case &quot;furlong&quot;:
				$this-&gt;Units = &quot;Furlongs&quot;;
			    $this-&gt;lastResult = $this-&gt;Difference * 8;
				break;
			case &quot;feet&quot;:
				$this-&gt;Units = &quot;Feet&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 5280;
				break;
			case &quot;dekameter&quot;:
				$this-&gt;Units = &quot;Dekameters&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 160.9344;
				break;
			case &quot;centimeter&quot;:
				$this-&gt;Units = &quot;Centimeters&quot;;
				$this-&gt;lastResult = $this-&gt;Difference * 160934.4;
				break;
		}

            return $this-&gt;lastResult;
        }
    }

}
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://icarosouza.net/blog/?feed=rss2&#038;p=1</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

