﻿<?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>Script Master - TI que inspira</title>
	<atom:link href="http://scriptmaster.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://scriptmaster.com.br</link>
	<description>Tutoriais de qualidade para desenvolvedores Web que utilizam PHP, HTML, CSS, MySQL, JavaScript, AJAX, Frameworks, SEO, Blogs, CMS e IDEs para desenvolvimento.</description>
	<lastBuildDate>Thu, 09 Feb 2012 01:27:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Como formatar Data e Hora em PHP com setlocale e strftime</title>
		<link>http://scriptmaster.com.br/como-formatar-data-e-hora-em-php-com-setlocale-e-strftime/</link>
		<comments>http://scriptmaster.com.br/como-formatar-data-e-hora-em-php-com-setlocale-e-strftime/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 23:03:02 +0000</pubDate>
		<dc:creator>Leandro Silva</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[formatar]]></category>
		<category><![CDATA[hora]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[setlocale]]></category>
		<category><![CDATA[strftime]]></category>

		<guid isPermaLink="false">http://scriptmaster.com.br/?p=271</guid>
		<description><![CDATA[No último artigo, vimos o fundamental sobre como formatar data e hora em php de forma objetiva e abordando os principais casos de uso. Agora, vamos nos aprofundar no sentido de permitir que a data e hora sejam formatadas em português ou em qualquer outro idioma, utilizando as funções setlocale( ) e strftime( ). Data [...]<div class="related-post">
Posts Relacionados:<ol>
<li><a href='http://scriptmaster.com.br/como-formatar-data-e-hora-em-php/' rel='bookmark' title='Como formatar Data e Hora em PHP'>Como formatar Data e Hora em PHP</a></li>
</ol></div>]]></description>
			<content:encoded><![CDATA[<p>No último artigo, vimos o fundamental sobre <a title="Como formatar data e hora em php" href="http://scriptmaster.com.br/como-formatar-data-e-hora-em-php/" target="_blank">como formatar data e hora em php</a> de forma objetiva e abordando os principais casos de uso. Agora, vamos nos aprofundar no sentido de permitir que a data e hora sejam formatadas em português ou em qualquer outro idioma, utilizando as funções <a title="Função setlocale para formatar data e hora em php" href="http://www.php.net/manual/pt_BR/function.setlocale.php" target="_blank">setlocale( )</a> e <a title="Função strftime para formatar data e hora em php" href="http://www.php.net/manual/pt_BR/function.strftime.php" target="_blank">strftime( )</a>. <span id="more-271"></span></p>
<h2 title="Data e hora em php com a função setlocale e a função strftime em qualquer idioma">Data e hora em qualquer idioma</h2>
<p>Sabemos que a função <a title="Como formatar data e hora em php com a função date" href="http://www.php.net/manual/pt_BR/function.date.php" target="_blank">date( )</a> é a responsável por <strong>formatar data e hora em php</strong>, contudo não é extensível a todos os idiomas. Dias da semana (sábado, sab, domingo, dom, etc) e do mês (jan, fev, janeiro, fevereiro, etc.) são retornados em inglês, o que nem sempre é conveniente.</p>
<p>Para resolver esse problema, utilizam-se as <strong>funções setlocale( ) e strftime( )</strong>, que fornecem resultados, conforme o idioma e país selecionado. É uma ótima solução para sites que possuem diversas versões em vários países.</p>
<h3 title="Data e hora em php com a função setlocale definindo a localização">Use o setlocale( ) para definir a localização padrão</h3>
<p>Esta função permite definir a categoria da padronização (monetária, numérica, classificação e conversão de caractere, e data e hora), o idioma e o país que devem ser considerados pelo php na hora da execução do script. Abaixo, a estrutura da função:</p>
<p>string <strong>setlocale</strong> ( <a href="http://www.php.net/manual/pt_BR/language.pseudo-types.php#language.types.mixed" target="_blank">mixed</a> <tt>$category</tt> , string <tt>$locale</tt> [, string <tt>$...</tt> ] )</p>
<p>ou</p>
<p>string <strong>setlocale</strong> ( <a href="http://www.php.net/manual/pt_BR/language.pseudo-types.php#language.types.mixed" target="_blank">mixed</a> <tt>$category</tt> , array <tt>$locale</tt> )</p>
<p>Analisando sua estrutura, a variável <em>$category</em> receberá a categoria da padronização e a variável <em>$locale</em> receberá o idioma, país e o conjunto de caracteres (opcional). Abaixo, os valores suportados pelo parâmetro <em>category:</em></p>
<ul>
<li><strong>LC_MONETARY</strong> – padronização monetária. No Brasil, R$      1.250,00, nos EUA, $1,250.00 e na Itália, EUR 1.250,00;</li>
<li><strong>LC_NUMERIC</strong> – padronização numérica. No Brasil,      1.250,00, nos EUA, 1,250.00 e na Europa, EUR 1.250,00;</li>
<li><strong>LC_CTYPE</strong> – padroniza a classificação e conversão de      caracteres.</li>
<li><strong>LC_TIME</strong> – padroniza a data e hora. A data 07 de      agosto de 2011 é representada nos EUA como 08-07-2011, no Brasil como      07/08/2011, Europa e diversos outros países do mundo como 07-08-2011.</li>
<li><strong>LC_ALL</strong> – configura as regras de localização para      todas as categorias anteriores. E é a que vamos utilizar nos nossos      exemplos.</li>
</ul>
<p>Os valores suportados por locale possuem uma estrutura peculiar, qual seja: <em>language_COUNTRY.charset</em> . Em outras palavras, no nosso caso, é o conhecido <em>pt_BR.iso-8859-1</em>. Vamos ver alguns exemplos de valores suportados pelo parâmetro <em>locale</em>:</p>
<ul>
<li><strong>pt_BR.iso-8859-1</strong> – português do Brasil com conjunto      de caracteres iso-8859-1 ou simplesmente pt_BR;</li>
<li><strong>de_DE</strong> – alemão;</li>
<li><strong>nl_NL</strong> – Holanda.</li>
</ul>
<p>A função <strong>setlocale( )</strong> aceita que seja configurado mais de um parâmetro <em>locale</em>, permitindo a especificação de diferentes localizações simultaneamente. Contudo, a principal utilidade dessa flexibilidade se deve ao fato de o Sistema Operacional Windows ter seu próprio conjunto de <a href="http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.71%29.aspx" target="_blank">línguas</a> e <a href="http://msdn.microsoft.com/en-us/library/cdax410z%28vs.71%29.aspx" target="_blank">países</a>, <em>languange_COUNTRY.</em> Sendo assim, podemos especificar dois valores ou mais para dois parâmetros locale ou mais. Durante a execução do script, se o PHP não encontrar o primeiro conjunto no Sistema Operacional, buscará o segundo e assim sucessivamente. Vamos a um exemplo:</p>
<pre class="brush: php; title: ; notranslate">

//Configura a localização em SO Unix
setlocale(LC_ALL, &quot;pt_BR&quot;);

//Configura a localização em Windows
setlocale(LC_ALL, &quot;ptb_bra&quot;);

//Configura a localização em SO Unix e Windows
setlocale(LC_ALL, &quot;pt_BR&quot;,&quot;ptb_bra&quot;);
</pre>
<h3 title="Como formatar data e hora em qualquer idioma com a função strftime ">Use o strftime( ) para fomatar a data e hora em qualquer idioma</h3>
<p>A <strong>função strftime( ) formatará a data e hora</strong> de acordo com as configurações feitas em setlocale. Seu funcionamento é idêntico à <strong>função date( )</strong>, vejamos o porquê:</p>
<p>string <strong>strftime</strong> ( string <tt>$format</tt> [, int <tt>$timestamp</tt> ] ),</p>
<p>onde a variável $format receberá o formato de saída da data e $timestamp, que é opcional, receberá  o <a title="Data e hora em php com Timestamp Unix" href="http://pt.wikipedia.org/wiki/Era_Unix" target="_blank">timestamp Unix</a> da data e hora que se deseja exibir. Caso, este valor não seja fornecido, o timestamp Unix atual será padronizado pelo PHP. Vamos ver alguns exemplos de utilização da função <em>strftime( ), </em>lembrando que os <a title="Como formatar data e hora em PHP com os parâmetros de formatação da função strftime" href="http://www.php.net/manual/pt_BR/function.strftime.php" target="_blank">parâmetros de formatação</a> são diferentes dos da <strong>função date( )</strong>:</p>
<pre class="brush: php; title: ; notranslate">

//Configura a localização em para SO Unix e Windows
setlocale(LC_ALL, &quot;pt_BR&quot;,&quot;ptb_bra&quot;);

echo strftime(&quot;%A %a&quot;);				// Domingo Dom
echo strftime(&quot;%A, %d de %B de %Y&quot;);	// Domingo 07 de Agosto de 2011
echo strftime(&quot;%a, %d de %b de %y&quot;);    	// Dom, 07 de Ago de 11
echo strftime(&quot;%d.%m.%y&quot;);           	// 07.08.11
echo strftime(&quot;%d, %m, %Y&quot;);         	// 07, 08, 2011
echo strftime(&quot;%d%m%Y&quot;);             	// 07082011
echo strftime(&quot;%d/%m/%Y %H:%M:%S&quot;);  	// 07/08/2011 18:23:25
echo strftime(&quot;%x %X&quot;); 			// 7/8/2011 18:23:25
echo strftime(&quot;%c&quot;);				// 7/8/2011 18:23:25
echo strftime(&quot;%Y-%m-%d %H:%M:%S&quot;);		// 2011-08-07 18:23:25
echo strftime(&quot;%w&quot;);				// 0 (dia da semana - 0 domingo a 6 sábado)
echo strftime(&quot;%W&quot;);				// 31 (número da semana do ano 1 a 52/53)
echo strftime(&quot;%j&quot;);				// 219 (dia do ano 1 a 366)
</pre>
<h2 title="Dica importante para formatar data e hora em php com a função strftime">Dica importante sobre a função strftime( )</h2>
<p>Nem todas as plataformas suportam timestamps negativos, ou seja timestamps anteriores à Era Unix. Isto significa que %e, %T, %R e %D (e outras mais) e datas anteriores a 1º de <em>Janeiro de 1970</em> não funcionarão em Windows, algumas distribuições Linux, e alguns outros sistemas operacionais.</p>
<p>Muito obrigado pela sua visita. Espero que o tutorial tenha atendido às suas expectativas.</p>
<p>Deixe seu comentário e inscreva-se no Feed RSS do Scriptmaster.</p>
<p>Abraço e até o próximo tutorial.</p>
<p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;count=none&amp;text=Como%20formatar%20Data%20e%20Hora%20em%20PHP%20com%20setlocale%20e%20strftime" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;count=none&amp;text=Como%20formatar%20Data%20e%20Hora%20em%20PHP%20com%20setlocale%20e%20strftime" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><!--<![endif]--><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;linkname=Como%20formatar%20Data%20e%20Hora%20em%20PHP%20com%20setlocale%20e%20strftime" title="Orkut" rel="nofollow" target="_blank"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php-com-setlocale-e-strftime%2F&amp;title=Como%20formatar%20Data%20e%20Hora%20em%20PHP%20com%20setlocale%20e%20strftime" id="wpa2a_2"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p><div class="related-post"><p>Posts Relacionados:</p><ol>
<li><a href='http://scriptmaster.com.br/como-formatar-data-e-hora-em-php/' rel='bookmark' title='Como formatar Data e Hora em PHP'>Como formatar Data e Hora em PHP</a></li>
</ol></div>]]></content:encoded>
			<wfw:commentRss>http://scriptmaster.com.br/como-formatar-data-e-hora-em-php-com-setlocale-e-strftime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como formatar Data e Hora em PHP</title>
		<link>http://scriptmaster.com.br/como-formatar-data-e-hora-em-php/</link>
		<comments>http://scriptmaster.com.br/como-formatar-data-e-hora-em-php/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 22:04:54 +0000</pubDate>
		<dc:creator>Leandro Silva</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[formatar]]></category>
		<category><![CDATA[função]]></category>
		<category><![CDATA[hora]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[timestamp]]></category>

		<guid isPermaLink="false">http://scriptmaster.com.br/?p=263</guid>
		<description><![CDATA[Vamos ver como formatar data e hora em PHP de forma objetiva e abordando os tópicos mais recorrentes. Data e hora são uma constante na vida dos programadores e quase sempre surgem dúvidas quanto a sua utilização. O assunto é extenso e possui muitos detalhes, portanto, neste artigo, apresentarei os primeiros passos de maneira clara [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos ver como formatar <a href="http://www.php.net/manual/pt_BR/ref.datetime.php" target="_blank" title="Como formatar data e hora em PHP">data e hora em PHP</a> de forma objetiva e abordando os tópicos mais recorrentes. Data e hora são uma constante na vida dos programadores e quase sempre surgem dúvidas quanto a sua utilização. </p>
<p>O assunto é extenso e possui muitos detalhes, portanto, neste artigo, apresentarei os primeiros passos de maneira clara e direta. <span id="more-263"></span></p>
<h2 title="Use a função date( ) para formatar Data e hora em php">Use a função date( ) para formatar Data e hora</h2>
<p>A função <a href="http://www.php.net/manual/pt_BR/function.date.php" target="_blank" title="Função date formatar data e hora em PHP">date( )</a> é a responsável por formatar data e hora em php. Esta função retorna uma string que representa a data e hora, de acordo com os valores passados para os seus parâmetros. Abaixo, a estrutura da função:</p>
<p><em>string <strong>date </strong>( string $format [, int $timestamp ] )</em></p>
<p>Analisando sua estrutura, a variável $format receberá o formato de saída da data e $timestamp, que é opcional, receberá  o <a href="http://pt.wikipedia.org/wiki/Era_Unix" target="_blank" title="Como formatar data e hora em PHP com timestamp Unix">timestamp Unix</a> da data e hora que se deseja exibir. Caso, este valor não seja fornecido, o timestamp Unix atual será padronizado pelo PHP. Vamos ver alguns exemplos de utilização da função date( ):</p>
<pre class="brush: php; title: ; notranslate">

// Considerando que hoje é 07 de agosto de 2011, 06:23:25 pm

echo date(&quot;d.m.y&quot;);             // 07.08.11
echo date(&quot;j, n, Y&quot;);           // 7, 8, 2011
echo date(&quot;dmY&quot;);               // 07082011
echo date(&quot;d/m/Y H:i:s&quot;);       // 07/08/2011 18:23:25
echo date(&quot;Y-m-d H:i:s&quot;);       // 2011-08-07 18:23:25
echo date(&quot;w&quot;);                 // 0 (dia da semana - 0 domingo a 6 sábado)
echo date(&quot;W&quot;);                 // 31 (número da semana do ano 1 a 52/53)
echo date(&quot;z&quot;);	              // 218 (dia do ano 0 a 364)
echo date(&quot;U&quot;);                 // 1291753405 (timestamp)
echo date(&quot;l F j, Y, g:i a&quot;);   // Sunday August 7, 2011, 6:23 pm
echo date(&quot;D M j G:i:s Y&quot;);     // Sun Aug 7 18:23:25 2011
echo date('\H\o\j\e \é \d\i\a j \d\e F \d\e Y');// Hoje é dia 7 de August de 2011
echo date('\A\g\o\r\a \s\ã\o H\h i\m\i\n s\s'); // Agora são 18h 23min 25s
echo date('\H\o\j\e \é \o jS \d\i\a');          // Hoje é o 7th dia
echo date('Hoje é o jS dia'); //1920117America/Sao_Paulo é 2011 7th 0708pm
</pre>
<h2 title="como formatar data e hora em php com a função date">Dicas importantes sobre a função date( )</h2>
<p>1ª ) Como os nomes dos dias da semana e dos meses são representados em inglês com esta função, geralmente ela é mais utilizada quando se quer representar a data e hora sem a presença do nome do mês ou do nome do dia da semana; </p>
<p>2ª ) No código acima, especificamente no último exemplo, você pôde perceber o resultado indesejável ocasionado pela não utilização do caractere de escape (\). Portanto, ao utilizar caracteres que possam conflitar com os <a href="http://www.php.net/manual/pt_BR/function.date.php" target="_blank" title="Parâmetros de formatação da função date para formatar data e hora em PHP ">parâmetros de formatação</a>, utilize escape. Além disso, em vez de utilizar aspas duplas utilize aspas simples para prevenir que caracteres como \n sejam interpretados como nova linha;  </p>
<p>3ª ) Você deve estar se perguntando: como formatar datas em português? Para formatar datas em outras línguas, devemos usar as funções <a href="http://www.php.net/manual/pt_BR/function.setlocale.php" target="_blank" title="Como formatar data e hora em PHP com a função setlocale">setlocale() </a>e <a href="http://www.php.net/manual/pt_BR/function.strftime.php" target="_blank" title="Como formatar data e hora em PHP com a função strftime">strftime()</a> em vez de date(). O tutorial <a href="http://scriptmaster.com.br/como-formatar-data-e-hora-em-php-com-setlocale-e-strftime" target="_blank">Como formatar Data e Hora em PHP com setlocale e strftime</a> trata justamente disso.</p>
<p>Muito obrigado pelo seu voto de confiança no blog e no conteúdo. Espero que o tutorial tenha sido proveitoso. </p>
<p>Deixe seu comentário e inscreva-se no Feed RSS do Scriptmaster.</p>
<p>Abraço e até o próximo tutorial.</p>
<p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;count=none&amp;text=Como%20formatar%20Data%20e%20Hora%20em%20PHP" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;count=none&amp;text=Como%20formatar%20Data%20e%20Hora%20em%20PHP" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><!--<![endif]--><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;linkname=Como%20formatar%20Data%20e%20Hora%20em%20PHP" title="Orkut" rel="nofollow" target="_blank"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-formatar-data-e-hora-em-php%2F&amp;title=Como%20formatar%20Data%20e%20Hora%20em%20PHP" id="wpa2a_4"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://scriptmaster.com.br/como-formatar-data-e-hora-em-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O que você precisa saber sobre o Joomla 1.7</title>
		<link>http://scriptmaster.com.br/o-que-voce-precisa-saber-sobre-o-joomla-1-7/</link>
		<comments>http://scriptmaster.com.br/o-que-voce-precisa-saber-sobre-o-joomla-1-7/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 22:41:16 +0000</pubDate>
		<dc:creator>Leandro Silva</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[atualização]]></category>
		<category><![CDATA[atualizar]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[joomla 1.7]]></category>
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://scriptmaster.com.br/?p=257</guid>
		<description><![CDATA[Este post contém os esclarecimentos das principais dúvidas que surgiram com o lançamento do release do Joomla 1.7. As perguntas e respostas apresentadas aqui foram retiradas e traduzidas do blog Compass Design e do Portal Comunidade Joomla. O autor do artigo é Jen Kramer, presidente da 4Web, uma consultoria de New England, especializada em sites [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.joomla.org/17" target="_blank"><img class="aligncenter  wp-image-258" title="O que você precisa saber sobre o Joomla 1.7" src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/O-que-você-precisa-saber-sobre-o-joomla-1.7.png" alt="O que você precisa saber sobre o Joomla 1.7" /></a></p>
<p>Este post contém os esclarecimentos das principais dúvidas que surgiram com o lançamento do release do Joomla 1.7. As perguntas e respostas apresentadas aqui foram retiradas e traduzidas do blog <a href="http://www.compassdesigns.net/joomla-blog/joomla-17-faq" target="_blank">Compass Design</a> e do <a href="http://community.joomla.org/blogs/community/1470-need-to-know-17.html" target="_blank">Portal Comunidade Joomla</a>. O autor do artigo é Jen Kramer, presidente da 4Web, uma consultoria de New England, especializada em sites Joomla altamente personalizados.</p>
<p>Vamos ao artigo. <span id="more-257"></span></p>
<h2 title="perguntas e respostas sobre o Joomla 1.7">Perguntas e Respostas sobre o Joomla 1.7</h2>
<p>“Caso você não tenha ouvido falar, Joomla 1.7 será lançado em 19 de julho de 2011. Este é o primeiro release em cronograma da nova versão de 6 meses do Joomla.</p>
<h2 title="Devo atualizar meu site Joomla 1.6 para Joomla 1.7">1. Devo atualizar meu site Joomla 1.6 para Joomla 1.7?</h2>
<p>Na verdade, você deve. Joomla 1.6 vai chegar ao fim de sua vida em agosto de 2011, daqui a um mês. Depois disso, Joomla 1.6 não terá mais atualizações de segurança, o que significa que se um problema de segurança é descoberto, não será solucionado. E isso significa que se o seu site for hackeado devido a uma vulnerabilidade 1.6, você não terá recursos para corrigir o site, terá que mudá-lo para 1.7 de qualquer maneira. Você atualizará mais cedo ou mais tarde!</p>
<p>Ah, e o upgrade do 1.6 para 1.7 foi projetado para ser muito simples, one-click process (processo realizado com um clique).</p>
<h2 title="Meu site Joomla 1.6 continuará funcionando caso eu não realize a atualização">2. Meu site Joomla 1.6 continuará funcionando caso eu não realize a atualização?</h2>
<p>Sim, se você não atualizar seu site, ele funcionará normalmente&#8230; por enquanto. Veja os problemas de atualizações de segurança acima. Desenvolvedores de extensões estarão construindo para a versão atual do Joomla, por isso, se você quiser adicionar outra extensão para o seu site 1.6 ou você quiser alterar o modelo, você encontrará dificuldades daqui para frente.</p>
<h2 title="Como faço para atualizar do 1.6 para o 1.7">3. Como faço para atualizar do 1.6 para o 1.7?</h2>
<p>Primeiro, se você estiver executando o Joomla 1.6, verifique se a versão é a 1.6.5. Esta foi lançada no final de junho, e é a única versão do Joomla 1.6 que permitirá passar para a 1.7.</p>
<p>Veja as instruções de <a href="http://docs.joomla.org/Upgrade_1.6.5_to_1.7" target="_blank">atualização do Joomla 1.6.5 para o 1.7</a>.</p>
<h2 title="Minhas extensões e templates do Joomla 1.6 são compatíveis com o Joomla 1.7">4. Minhas extensões e templates do Joomla 1.6 são compatíveis com o Joomla 1.7?</h2>
<p>Foi-nos dito que todas as extensões que atualmente são compatíveis com 1.6 não devem ter problemas de execução no Joomla 1.7. Como sempre, você vai querer testar primeiro. Recomendamos enfaticamente fazer uma cópia de seu site, atualizá-lo para 1.7, e testar o site inteiro cuidadosamente para ter certeza de que funcionará corretamente, incluindo as extensões de terceiros.</p>
<p>Os templates também devem ser compatíveis entre as versões.</p>
<h2 title="Que novos recursos e funcionalidades posso esperar no Joomla 1.7">5. Que novos recursos e funcionalidades posso esperar no Joomla 1.7?</h2>
<p>A equipe que trouxe o Joomla 1.6, depois de trabalhar por três anos no projeto, trouxe o Joomla 1.7 em apenas 6 meses. Obviamente, esta versão não tem tantos recursos, uma vez que o tempo dedicado ao desenvolvimento foi menor.</p>
<p>Da perspectiva de um construtor de sites (operador do CMS Joomla), existem algumas pequenas melhorias, como a capacidade de adicionar uma imagem de fundo para o módulo de HTML personalizado, a capacidade de especificar o nome do site antes ou depois do título da página, e o botão &#8220;remover a pasta de instalação&#8221; como parte do processo de instalação. Não espere por grandes mudanças, como um novo modelo de administração, por exemplo.</p>
<p>Do ponto de vista de um desenvolvedor, as mudanças são mais significativas. O Framework do Joomla foi separado do CMS, o que significa que é possível construir novas aplicações com o framework do Joomla. (Veja este artigo da <a href="http://magazine.joomla.org/issues/Issue-July-2011/item/507-Joomla-1-7-Division-or-Fission" target="_blank">revista Joomla</a> para mais informações). Houve também o extermínio de mais de 300 bugs nesta versão.</p>
<h2 title="Devo atualizar meu site para Joomla 1.5 Joomla 1.7">6. Devo atualizar meu site para Joomla 1.5 Joomla 1.7?</h2>
<p>Como sempre, a resposta é &#8220;depende&#8221;. No entanto, se o seu site de Joomla 1.5 está funcionando bem, eu não iria atualizá-lo ainda. Joomla 1.5 terá suporte até abril de 2012. Joomla 1.8 será lançado em janeiro de 2012, e será um release de longo prazo, o que significa que terá suporte durante 18 meses em vez de seis meses.</p>
<h2 title=" Estou construindo um novo site, devo construí-lo em 1.5 ou 1.7">7. Estou construindo um novo site, devo construí-lo em 1.5 ou 1.7?</h2>
<p>A esta altura do campeonato, você acabará precisando mudar o seu site para Joomla 1.8 em seis meses ou mais, seja em Joomla 1.5 ou no Joomla 1.7. No entanto, a mudança do 1.7 para o 1.8 deve ser menos trabalhosa do que a mudança do 1.5 para o 1.7. Menos trabalho significa menor custo, então a partir da perspectiva do cliente, construir em 1.7 faz muito sentido neste momento.</p>
<p>Se você precisa de extensões que ainda não são compatíveis com 1.6/1.7 (K2 ainda está em beta da versão 1.6 e a maioria dos carrinhos de compras cheio de recursos como redSHOP, VirtueMart, e Tienda ainda estão apenas no Joomla 1.5), você terá que construir o site em 1.5 por enquanto. “</p>
<h2>Considerações finais</h2>
<p>Espero que o artigo tenha sido de grande valia e tenha agradado a todos.</p>
<p>Deixe seu comentário e inscreva-se no Feed RSS do Scriptmaster.</p>
<p>Abraço e até o próximo tutorial.</p>
<p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;count=none&amp;text=O%20que%20voc%C3%AA%20precisa%20saber%20sobre%20o%20Joomla%201.7" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;count=none&amp;text=O%20que%20voc%C3%AA%20precisa%20saber%20sobre%20o%20Joomla%201.7" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><!--<![endif]--><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;linkname=O%20que%20voc%C3%AA%20precisa%20saber%20sobre%20o%20Joomla%201.7" title="Orkut" rel="nofollow" target="_blank"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fscriptmaster.com.br%2Fo-que-voce-precisa-saber-sobre-o-joomla-1-7%2F&amp;title=O%20que%20voc%C3%AA%20precisa%20saber%20sobre%20o%20Joomla%201.7" id="wpa2a_6"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://scriptmaster.com.br/o-que-voce-precisa-saber-sobre-o-joomla-1-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bordas arredondadas com CSS</title>
		<link>http://scriptmaster.com.br/bordas-arredondadas-com-css/</link>
		<comments>http://scriptmaster.com.br/bordas-arredondadas-com-css/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 22:52:29 +0000</pubDate>
		<dc:creator>Leandro Silva</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[arredondadas]]></category>
		<category><![CDATA[bordas]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css 3]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://scriptmaster.com.br/?p=242</guid>
		<description><![CDATA[Criar bordas arredondadas, utilizando as recomendações CSS 3 ficou mais fácil. Entretanto, nem sempre foi assim. Antes das especificações CSS 3, criar bordas arredondadas com CSS 2 significava utilizar técnicas trabalhosas que envolviam a manipulação de imagens para simular o arredondamento das bordas. Atualmente, a responsável pela mágica de criação de cantos arredondados sem a [...]]]></description>
			<content:encoded><![CDATA[<p>Criar bordas arredondadas, utilizando as recomendações CSS 3 ficou mais fácil. Entretanto, nem sempre foi assim. Antes das especificações CSS 3, criar  <a href="http://maujor.com/w3ctuto/roundshadow.html" target="_blank">bordas arredondadas com CSS 2</a> significava utilizar técnicas trabalhosas que envolviam a manipulação de imagens para simular o arredondamento das bordas.</p>
<p>Atualmente, a responsável pela mágica de criação de cantos arredondados sem a utilização de imagens é a propriedade <a href="http://www.w3schools.com/cssref/css3_pr_border-radius.asp" target="_blank">CSS3 border-radius</a>. <span id="more-242"></span></p>
<h2 title="Bordas arredondadas com CSS">Entendendo a propriedade border-radius</h2>
<p>Considere o código abaixo:</p>
<pre class="brush: css; html-script: true; title: ; notranslate">

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html/loose.dtd&quot;&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;style type=&quot;text/css&quot;&gt;
			div {
				padding: 10px;
				background: #80ff80;
				width: 200px;
				border: 2px solid #00ff00;
				border-radius: 15px; /*raio de 15px para todos os cantos*/
			}
		&lt;/style&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;div&gt;A propriedade border-radius permite adicionar cantos arredondados aos elementos.&lt;/div&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>O código CSS acima aplicará o seguinte estilo ao elemento &lt;div&gt;:</p>
<p><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/bordas-arredondadas-com-css.png" alt="Bordas arredondadas com CSS" title="Bordas arredondadas com CSS" width="236" height="96" class="aligncenter size-full wp-image-243" /></p>
<p>Aplicar  <em>“border-radius: 15px;” </em>é equivalente à expressão reduzida de <em>“border-top-left-radius: 15px; border-top-right-radius:15px; border-bottom-right-radius: 15px; border-bottom-left-radius: 15px;”</em>. Ambas aplicam raio de 15px nos quatro cantos. </p>
<p>Agora vamos substituir o código CSS do exemplo anterior por este:</p>
<pre class="brush: css; title: ; notranslate">

	div {
		border:3px solid #cc0000;
		padding:10px;
		background:#ff0000;
		width:200px;
		border-radius: 30px 25px 20px 10px;
	}
</pre>
<p>O código CSS acima aplicará o seguinte estilo ao elemento &lt;div&gt;:</p>
<p><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/bordas-arredondadas-com-css-2.png" alt="Bordas arredondadas com CSS" title="Bordas arredondadas com CSS" width="237" height="97" class="aligncenter size-full wp-image-244" /></p>
<p> Aplicar  <em>“border-radius: 30px 25px 20px 10px;”</em> é equivalente à expressão reduzida de <em>“border-top-left-radius: 30px; border-top-right-radius:25px; border-bottom-right-radius: 20px; border-bottom-left-radius: 10px;”</em>. Ambas aplicam raios de 30px no canto superior esquerdo, 25px no canto superior direito, 20px no canto inferior direito e 10px no canto inferior esquerdo, respectivamente. A imagem abaixo representa bem o que acontece:</p>
<p> <img src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/bordas-arredondadas-com-css-31.png" alt="Bordas arredondadas com CSS" title="Bordas arredondadas com CSS" width="237" height="97" class="aligncenter size-full wp-image-245" /></p>
<p>Caso aplicássemos <em>“border-radius: 30px 25px;”</em> , as bordas superior esquerda e inferior direita teriam raio de 30px, assim como as bordas superior direita e inferior esquerda teriam raio de 25px.</p>
<h2 title="Bordas arredondas com CSS">Bordas arredondas com elipse</h2>
<p>Até agora, vimos que é possível criar bordas arredondas com círculos, basta  definir o tamanho do raio de cada um deles. Mas se quisermos arredondar os cantos com elipses. Será que é possível? Claro que sim, porém a sintaxe da propriedade <em>border-radius</em> muda. Vamos ver:</p>
<pre class="brush: css; title: ; notranslate">

	div {
		border:4px solid #ffd700;
		padding:10px;
		background:#ffff00;
		width:200px;
		border-top-left-radius: 30px 20px;
		border-top-right-radius: 10px 30px;
		border-bottom-right-radius: 30px 20px;
		border-bottom-left-radius: 10px 30px;
	}
</pre>
<p>O código CSS acima aplicará o seguinte estilo ao elemento &lt;div&gt;:</p>
<p> <img src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/bordas-arredondadas-com-css-41.png" alt="Bordas arredondadas com CSS" title="Bordas arredondadas com CSS" width="234" height="93" class="aligncenter size-full wp-image-246" /></p>
<p>Vamos entender melhor, as propriedades <em>border-top-left-radius, border-top-right-radius, border-bottom-right-radius e border-bottom-left-radius</em> possuem 2 (dois) valores cada uma. O primeiro valor representa o raio horizontal da elipse e o segundo valor, o raio vertical. Veja abaixo:</p>
<p> <img src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/bordas-arredondadas-com-css-51.png" alt="Bordas arredondadas com CSS" title="Bordas arredondadas com CSS" width="234" height="93" class="aligncenter size-full wp-image-247" /></p>
<p>A expressão reduzida para se obter o mesmo efeito anterior é <em>“border-radius: 30px 10px / 20px 30px;”</em>. Em que o primeiro valor (30px) representa o raio horizontal das bordas superior esquerda e inferior direita; o segundo valor (10px), o raio horizontal das bordas superior direita e inferior esquerda; o terceiro valor (20px), o raio vertical das bordas superior esquerda e inferior direita; e o quarto valor (30px), o raio vertical  das bordas superior direita e inferior esquerda.</p>
<h2 title="Considerações importantes sobre bordas arredondas com CSS">Considerações importantes</h2>
<p>A propriedade <em>border-radius</em> é suportada pelos navegadores IE9+, Firefox 4+, Chrome, Safari 5+, e Opera.<br />
Espero que o tutorial tenha sido de grande valia e tenha agradado a todos. </p>
<p>Deixe seu comentário e inscreva-se no Feed RSS do Scriptmaster.</p>
<p>Abraço e até o próximo tutorial.</p>
<p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;count=none&amp;text=Bordas%20arredondadas%20com%20CSS" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;count=none&amp;text=Bordas%20arredondadas%20com%20CSS" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><!--<![endif]--><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;linkname=Bordas%20arredondadas%20com%20CSS" title="Orkut" rel="nofollow" target="_blank"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fscriptmaster.com.br%2Fbordas-arredondadas-com-css%2F&amp;title=Bordas%20arredondadas%20com%20CSS" id="wpa2a_8"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://scriptmaster.com.br/bordas-arredondadas-com-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como criar mapas do Google Maps para o meu site</title>
		<link>http://scriptmaster.com.br/como-criar-mapas-do-google-maps-para-o-meu-site/</link>
		<comments>http://scriptmaster.com.br/como-criar-mapas-do-google-maps-para-o-meu-site/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 23:40:22 +0000</pubDate>
		<dc:creator>Leandro Silva</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[mapa]]></category>
		<category><![CDATA[mapas]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://scriptmaster.com.br/?p=226</guid>
		<description><![CDATA[Neste post, vamos ver como criar mapas do Google Maps para um site ou blog. Frequentemente, vejo o Google Maps sendo utilizado em blogs, sites e hotsites, para mostrar a localização de endereços de grandes eventos, escritórios, empresas, lojas, restaurantes, localização de anunciantes de classificados e muito mais. Isso traz maior conforto ao usuário, uma [...]<div class="related-post">
Posts Relacionados:<ol>
<li><a href='http://scriptmaster.com.br/tutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet/' rel='bookmark' title='Tutorial PHP para medir a velocidade de conexão com a internet'>Tutorial PHP para medir a velocidade de conexão com a internet</a></li>
</ol></div>]]></description>
			<content:encoded><![CDATA[<p>Neste post, vamos ver como criar mapas do Google Maps para um site ou blog.</p>
<p>Frequentemente, vejo o Google Maps sendo utilizado em blogs, sites e hotsites, para mostrar a localização de endereços de grandes eventos, escritórios, empresas, lojas, restaurantes, localização de anunciantes de classificados e muito mais. Isso traz maior conforto ao usuário, uma vez que não há a necessidade de se sair da página para efetuar a busca e localização do endereço indicado em outro blog ou site.</p>
<p>Existem 3 (três) métodos para se colocar mapas do Google Maps no seu blog ou site. O primeiro método é o mais simples e não requer nenhum conhecimento de programação, pois utiliza o código gerado pela página do próprio Google Maps. O segundo método gerará uma imagem chamada mapa estático. Você insere parâmetros no atributo src do elemento HTML &lt;img&gt; como zoom, coordenadas, tamanho, tipo de mapa, extensão da imagem que será gerada, tipo de marcadores, etc. e uma imagem será gerada com a localização especificada. O terceiro método gerará um mapa dinâmico. Esse mapa é parecido com o da página do Google Maps, podendo-se aumentar ou diminuir o zoom, mudar o tipo de mapa, percorrer o mapa gerado com o Google Street View, tudo isso dinamicamente.<span id="more-226"></span></p>
<p>Se você deseja somente uma representação no mapa de um endereço ou localidade, utilize o primeiro método. Agora se você precisa manipular variáveis e coordenadas armazenadas em bancos de dados, utilize o segundo ou terceiro método.</p>
<h2>Gerando um mapa através da página do Google Maps</h2>
<p>Vamos gerar um mapa, utilizando o primeiro método. Acesse a página do <a href="http://maps.google.com.br" target="_blank">Google Maps</a>, digite o endereço desejado na barra de endereço e clique na lupa para pesquisar. Quando o endereço buscado aparecer no mapa, clique no terceiro botão identificado como ‘Link’ na figura abaixo.  </p>
<p> <img src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/mapas-google-maps.jpg" alt="Mapas do Google Maps" title="Mapas do Google Maps" width="650" height="56" class="aligncenter size-full wp-image-227" /></p>
<p>Uma pequena caixa surgirá à direita, oferecendo 2 (duas) opções. Uma com o link que deverá ser colado em e-mails, chats ou páginas, levando o usuário ao mapa quando clicado; e a outra com o código HTML que gerará o mapa e deverá ser colado no seu site ou blog. Veja a imagem abaixo. </p>
<p><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/mapas-google-maps2.jpg" alt="Mapas do Google Maps" title="Mapas do Google Maps" width="314" height="147" class="aligncenter size-full wp-image-228" /></p>
<p>Ao clicar no link ‘Personalizar e visualizar mapa incorporado’, é possível modificar o tamanho do mapa gerado. Feitas as modificações, é só copiar o código e colar no seu site ou blog.</p>
<p>Tem interesse em saber quais são as coordenadas (latitude e longitude) do endereço? É muito simples. Basta copiar o código que gera o link para e-mails e mensagens instantâneas e colar em algum processador de texto. O código teria o seguinte formato:</p>
<p><em>“http://maps.google.com.br/maps?q=Rua+Prof.+Eurico+Rabelo,+s%2Fn%C2%BA+,+Maracan%C3%A3,+rio+de+janeiro&#038;hl=pt-BR&#038;ie=UTF8&#038;ll=-22.913871,-43.23103&#038;spn=0.004941,0.008497&#038;sll=-22.912537,-43.23089&#038;sspn=0.004941,0.008497&#038;t=h&#038;z=17”</em></p>
<p>Perceba que os parâmetros são separados, utilizando-se o caractere ‘&#038;’. O parâmetro “q” indica o endereço pesquisado, o “hl” indica o idioma, o “ie” o conjunto de caracteres e o “ll” indica a latitude e a longitude, que neste caso são -22.913871 e -43.23103. Caso digite a latitude e a longitude, separadas por vírgula, na barra de endereço e clique na lupa para buscar, o Google Maps levará ao mesmo endereço.<br />
Pronto, agora você também já sabe como obter as coordenadas (latitude, longitude) de um endereço.</p>
<h2>Um mapa estático é mais simples do que você imagina</h2>
<p>Quem conhece HTML sabe que a tag &lt;img&gt; é utilizada para exibir imagens. Sua estrutura é muito simples, veja:</p>
<pre class="brush: xml; title: ; notranslate">
	&lt;img  src=”endereço_da_imagem” alt=”texto_alternativo” /&gt; 

	&lt;!--
	o atributo src contém o endereço da imagem e o atributo alt contém
	um texto alternativo que será exibido caso a imagem não possa ser visualizada.
	--&gt;
</pre>
<p>É com base nessa estrutura que vamos trabalhar para gerar um <a href="http://code.google.com/intl/pt-BR/apis/maps/documentation/staticmaps/" target="_blank">mapa estático do Google Maps</a>. Vamos a um exemplo:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--
Observe a estrutura do atributo src.
--&gt;
&lt;img  src=”http://maps.google.com/maps/api/staticmap?center=-22.91387,-43.231031&amp;zoom=12&amp;size=400x400&amp;sensor=false” alt=”Exemplo de mapa estático” /&gt;
</pre>
<p>A estrutura base de uma URL para gerar mapas estáticos sempre será <em>http://maps.google.com/maps/api/staticmap?parâmetros</em>,  em que ‘parâmetros’ representa o local onde virão as configurações de exibição do mapa. No exemplo acima, o parâmetro ‘center’ indica o centro do mapa com a latitude e longitude separadas por vírgula, o parâmetro ‘zoom’ indica o nível de aproximação, ’ size’ o tamanho do mapa e ‘sensor’ se as coordenadas foram fornecidas por dispositivo móvel ou não. A estrutura base da URL não poderá ultrapassar 2.048 caracteres.</p>
<p>Veja abaixo os principais parâmetros para gerar um mapa estático.</p>
<ul>
<li><strong>center </strong>(obrigatório, se não houver marcadores) – define o centro do mapa;</li>
<li><strong>zoom </strong>(obrigatório, se não houver marcadores) – nível de zoom do mapa. Valor máximo 21;</li>
<li><strong>size </strong>(obrigatório) – define tamanho do mapa. 400&#215;400 exibe um mapa de 400 pixels por 400 pixels. Valor máximo 640&#215;640;</li>
<li><strong>format </strong>(opcional) – formato da imagem resultante. Pode ser png8, png, png32, gif, jpg, jpg-baseline;</li>
<li><strong>maptype </strong>(opcional) – define o tipo de mapa a ser construído. As opções são: roadmap, satellite, hybrid e terrain;</li>
<li><strong>markers </strong>(opcional) – define um ou mais marcadores para coordenadas especificadas. Possui 3 atributos: size, color e label, todos opcionais. O atributo size pode assumir os valores tiny, mid e small, o atributo color pode assumir cores de 24 bits (0xFFFFCC) ou cores pré-definidas (black, brown, green, purple, yellow, blue, gray, orange, red, White), já o atributo label especifica um único caractere alfanumérico em caixa alta entre A-Z e 0-9 para identificar o marker (marcador);</li>
<li><strong>Path </strong>(opcional) – usado para exibir um caminho. Possui 3 atributos: weight, color e fillcolor, todos opcionais. O atributo weight especifica a espessura da linha em pixels (padrão 5 pixels), o atributo color segue as mesmas regras do atributo color do parâmetro markers, e o atributo fillcolor configura a cor de preenchimento quando o caminho sai da área poligonal;</li>
<li><strong>Sensor </strong>(obrigatório) especifica se o aplicativo que está solicitando o mapa estático está usando um sensor para determinar a localização do usuário. Aceita os valores ‘true’ ou ‘false’.</li>
</ul>
<p>Lembrando que cada par ‘parâmetro=valor’ deve ser separado pelo caractere <em>&#038;</em>.</p>
<h3>Mapas estáticos na prática</h3>
<p><strong>Exemplo 1:</strong> mapa estático sem marcador e tipo de mapa roadmap.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--
mapa estático sem marcador e tipo de mapa roadmap
--&gt;
&lt;img  src=”http://maps.google.com/maps/api/staticmap?center=-22.91387,-43.231031&amp;zoom=12&amp;size=400x400&amp;sensor=false” alt=”Exemplo de mapa estático 1” /&gt;
</pre>
<p><a href="http://scriptmaster.com.br/tutorial/como-criar-mapas-do-google-maps-para-o-meu-site-ou-blog/como-criar-mapas-do-google-maps.php?exemplo=1" target="_blank">Clique e veja o exemplo 1.</a></p>
<p><strong>Exemplo 2:</strong> mapa estático com 1 (um) marcador e tipo de mapa satélite.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--
mapa estático com 1 (um) marcador e tipo de mapa satélite
--&gt;
&lt;img  src=”http://maps.google.com/maps/api/staticmap?markers=-22.91387,-43.231031&amp;zoom=17&amp;size=400x400&amp;maptype=satellite&amp;sensor=false” alt=”Exemplo de mapa estático 2” /&gt;
</pre>
<p><a href="http://scriptmaster.com.br/tutorial/como-criar-mapas-do-google-maps-para-o-meu-site-ou-blog/como-criar-mapas-do-google-maps.php?exemplo=2" target="_blank">Clique e veja o exemplo 2.</a></p>
<p><strong>Exemplo 3:</strong> mapa estático com 3 marcadores customizados formando a palavra ‘olá’, tipo de mapa satélite e formato da imagem png.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--
mapa estático com 3 marcadores customizados formando a palavra ‘olá’,
tipo de mapa satélite e formato da imagem png
--&gt;
&lt;img  src=”http://maps.google.com/maps/api/staticmap?markers=color:blue|label:O|-22.91387,-43.232000&amp;markers=color:green|label:L|-22.91387,-43.231500&amp;markers=color:red|label:A|-22.91387,-43.231000&amp;zoom=15&amp;size=512x512&amp;maptype=satellite&amp;format=png&amp;sensor=false” alt=”Exemplo de mapa estático 3” /&gt;
</pre>
<p><a href="http://scriptmaster.com.br/tutorial/como-criar-mapas-do-google-maps-para-o-meu-site-ou-blog/como-criar-mapas-do-google-maps.php?exemplo=3" target="_blank">Clique e veja o exemplo 3.</a></p>
<p><strong>Exemplo 4:</strong> mapa estático com um caminho e tipo de mapa hybrid.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--
mapa estático com um caminho e tipo de mapa hybrid
--&gt;
&lt;img  src=”http://maps.google.com/maps/api/staticmap?path=color:0xff0000ff|weight:5|-22.91387,-43.232000|-22.91387,-43.231500|-22.91387,-43.231000|-22.91387,-43.230500
&amp;zoom=14&amp;size=512x512&amp;maptype=hybrid&amp;format=png&amp;sensor=false” alt=”Exemplo de mapa estático 4” /&gt;
</pre>
<p><a href="http://scriptmaster.com.br/tutorial/como-criar-mapas-do-google-maps-para-o-meu-site-ou-blog/como-criar-mapas-do-google-maps.php?exemplo=4" target="_blank">Clique e veja o exemplo 4.</a></p>
<p>Como se pode ver não existem mistérios para se gerar mapas estáticos, porém é uma solução que ganha poder quando utilizada em conjunto com server side scripts e banco de dados. Todos o parâmetros podem ser modificados dinamicamente utilizando-se variáveis. Isso dá uma flexibilidade incrível ao recurso oferecido pelo Google.</p>
<h2>Com o mapa dinâmico não tem limites</h2>
<p>As possibilidades de criação com <a href="http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/tutorial.html" target="_blank">mapas dinâmicos do Google Maps</a> são tantas, que é impossível cobrir todas as funcionalidades em um tutorial. Para se ter uma idéia, é possível exibir posições (localizações) dinamicamente no mapa, gerando a sensação de movimento, à medida que um dispositivo móvel (smart phone, notebook, netbook, GPS e outros) envia dados de posição para um sistema de informação. Essa é uma das inúmeras aplicações que um mapa dinâmico pode ter.</p>
<p>Portanto, neste tutorial, vamos nos ater a gerar o mapa e exibir uma posição. Primeiramente, construiremos a nossa estrutura HTML e escolheremos um local para exibição do mapa.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
		&lt;title&gt;Como criar mapas do Google Maps&lt;/title&gt;

	&lt;/head&gt;

&lt;body&gt;

		&lt;div class=&quot;resultado&quot;&gt;

			&lt;h1&gt;Exemplo de mapa dinâmico&lt;/h1&gt;
			&lt;div id=&quot;map_canvas&quot;&gt;&lt;/div&gt;

		&lt;/div&gt;	

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>O mapa será gerado no interior do elemento &lt;div&gt;, identificado pelo id ‘map_canvas’. A classe ‘resultado’ será construída mais à frente, pois é ela quem dará estilo à exibição do HTML. Vamos ao JavaScript que criará o mapa.</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.google.com/maps/api/js?sensor=false&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  	function initialize() {
    		var latlng = new google.maps.LatLng(-22.91387,-43.231031);
    		var myOptions = {
      		zoom: 17,
      		center: latlng,
      		mapTypeId: google.maps.MapTypeId.SATELLITE
    		};
    		var map = new google.maps.Map(document.getElementById(&quot;map_canvas&quot;), myOptions);

    		var marker = new google.maps.Marker({
    			 	position: latlng,
    			      map: map,
    			      title:&quot;Hello World!&quot;
    			  });
  	}
&lt;/script&gt;
</pre>
<p>A primeira tag &lt;script&gt; carrega dos servidores do Google Maps o código-base que permite a criação e manipulação do mapa. A segunda tag &lt;script&gt; contém a função ‘initialize’ que será responsável pela criação do mapa e sua configuração. O objeto ‘latlng’ contém as coordenadas (latitude e longitude), já o literal de objeto ‘myOptions’ contém as configurações do mapa (zoom, center – centro do mapa e mapTypeId – tipo de mapa) e o objeto ‘map’ cria o mapa no local especificado(‘map_canvas’) e aplica as configurações do ‘myOptions’. O objeto ‘marker’ define o marcador no mapa.</p>
<p>Para que o mapa seja renderizado, é necessário inserirmos o código JavaScript anterior no elemento &lt;head&gt;, bem como inserirmos o evento ‘onload’ na tag &lt;body&gt;, o qual chamará a função ‘initialize’ assim que a página for totalmente carregada. </p>
<p>Abaixo, veja o código completo juntamente com CSS para aplicar o estilo:</p>
<pre class="brush: jscript; html-script: true; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
		&lt;title&gt;Como criar mapas do Google Maps&lt;/title&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.google.com/maps/api/js?sensor=false&quot;&gt;&lt;/script&gt;
		&lt;script type=&quot;text/javascript&quot;&gt;
  			function initialize() {
    			var latlng = new google.maps.LatLng(-22.91387,-43.231031);
    			var myOptions = {
      			zoom: 17,
      			center: latlng,
      			mapTypeId: google.maps.MapTypeId.SATELLITE
    			};
    			var map = new google.maps.Map(document.getElementById(&quot;map_canvas&quot;), myOptions);

    			var marker = new google.maps.Marker({
    			      position: latlng,
    			      map: map,
    			      title:&quot;Hello World!&quot;
    			  });
  			}
		&lt;/script&gt;

		&lt;style type=&quot;text/css&quot;&gt;

			body {
				text-align: center; /*centraliza no IE*/
			}
			.resultado {
				width: 500px;
				margin-top: 20px;
				margin-left: auto;
				margin-right: auto;
				text-align: center;
			}
			.resultado h1 {
				font-size: 1.3em;
				background: #4682b4;
				color: #fff;
				border: 2px double #b0c4de;
			}
			.resultado #map_canvas {
				width: auto;
				height: 500px;
				border: 1px solid #4682b4;
			}

		&lt;/style&gt;

	&lt;/head&gt;

	&lt;body onload=&quot;initialize()&quot;&gt;

	&lt;div class=&quot;resultado&quot;&gt;

		&lt;h1&gt;Exemplo de mapa dinâmico&lt;/h1&gt;
		&lt;div id=&quot;map_canvas&quot;&gt;&lt;/div&gt;

	&lt;/div&gt;	

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><a href="http://scriptmaster.com.br/tutorial/como-criar-mapas-do-google-maps-para-o-meu-site-ou-blog/como-criar-mapas-do-google-maps2.php" target="_blank">Clique e veja o mapa dinâmico criado.</a></p>
<h2>Considerações Finais</h2>
<p>Este post apresentou as diversas formas de se gerar mapas com o Google Maps, porém as possibilidades não se esgotam por aqui. Existem inúmeros detalhes que ainda podem ser abordados para atender as mais diversas necessidades. E como as aplicações desta ferramenta são inúmeras, o limite vai até onde a imaginação permitir. </p>
<p>Espero que tenha sido útil e você tenha gostado. Este tutorial foi feito com muito carinho. </p>
<p>Deixe seu comentário e inscreva-se no Feed RSS do Scriptmaster.</p>
<p>Abraço e até o próximo tutorial.</p>
<p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;count=none&amp;text=Como%20criar%20mapas%20do%20Google%20Maps%20para%20o%20meu%20site" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;count=none&amp;text=Como%20criar%20mapas%20do%20Google%20Maps%20para%20o%20meu%20site" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><!--<![endif]--><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;linkname=Como%20criar%20mapas%20do%20Google%20Maps%20para%20o%20meu%20site" title="Orkut" rel="nofollow" target="_blank"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fscriptmaster.com.br%2Fcomo-criar-mapas-do-google-maps-para-o-meu-site%2F&amp;title=Como%20criar%20mapas%20do%20Google%20Maps%20para%20o%20meu%20site" id="wpa2a_10"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p><div class="related-post"><p>Posts Relacionados:</p><ol>
<li><a href='http://scriptmaster.com.br/tutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet/' rel='bookmark' title='Tutorial PHP para medir a velocidade de conexão com a internet'>Tutorial PHP para medir a velocidade de conexão com a internet</a></li>
</ol></div>]]></content:encoded>
			<wfw:commentRss>http://scriptmaster.com.br/como-criar-mapas-do-google-maps-para-o-meu-site/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tutorial PHP para medir a velocidade de conexão com a internet</title>
		<link>http://scriptmaster.com.br/tutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet/</link>
		<comments>http://scriptmaster.com.br/tutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 06:07:37 +0000</pubDate>
		<dc:creator>Leandro Silva</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[velocidade]]></category>

		<guid isPermaLink="false">http://scriptmaster.com.br/?p=121</guid>
		<description><![CDATA[Como medir a velocidade de conexão com a internet utilizando o PHP? É o que veremos neste tutorial, utilizando algumas técnicas em PHP e JavaScript bem simples e que servem de parâmetro para saber como a medição da velocidade de conexão com a internet é feita em alguns sites. A velocidade, basicamente, representa a quantidade [...]]]></description>
			<content:encoded><![CDATA[<p>Como medir a velocidade de conexão com a internet utilizando o PHP? É o que veremos neste tutorial, utilizando algumas técnicas em PHP e JavaScript bem simples e que servem de parâmetro para saber como a medição da velocidade de conexão com a internet é feita em alguns sites.<br />
<a rel="attachment wp-att-122" href="http://scriptmaster.com.br/tutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet/medidor-de-velocidade-de-conexao/"><img class="alignleft size-full wp-image-122" title="Medidor de Velocidade de Conexão com a Internet" src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/medidor-de-velocidade-de-conexao.jpg" alt="Medidor de Velocidade de Conexão com a Internet" width="200" height="150" /></a><br />
A velocidade, basicamente, representa a quantidade de dados que podem ser transferidos, em um dado momento, de um servidor na internet para o seu computador. </p>
<p>É importante ressaltar que existem diversos fatores que influem na velocidade de conexão, como: qualidade e limitações de hardware (cabos, roteadores, modem, memória, etc.), carga de processamento que a CPU está sendo submetida, sobrecarga de memória, interferências, distância dos dados solicitados, quantidade de servidores que esses dados passarão e suas respectivas velocidades, quantidade de usuários realizando transferência de dados simultaneamente, dentre outros.</p>
<p>Portanto, exigir que uma medição represente com exatidão a velocidade real é praticamente impossível. O máximo que é alcançado com os algoritmos é uma aproximação do valor real.</p>
<p>Vamos ao tutorial! <span id="more-121"></span></p>
<h2>Técnica Utilizada</h2>
<p><a rel="attachment wp-att-125" href="http://scriptmaster.com.br/tutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet/medidor-de-velocidade-de-internet/"><img class="alignright size-full wp-image-125" title="Medidor de Velocidade de Conexão com a Internet" src="http://scriptmaster.com.br/ScriptMaster/wp-content/uploads/2011/07/medidor-de-velocidade-de-internet.jpg" alt="Medidor de Velocidade de Conexão com a Internet" width="128" height="128" /></a>Para poder efetuar a medição, precisamos ter dados para transferir. Para isso, criaremos um arquivo de texto de 100KB no servidor, iniciaremos a transferência dos dados para a máquina local que está realizando o teste, anotaremos o tempo inicial e final da transferência, e por fim calcularemos a velocidade da conexão, a taxa de transferência e a duração do teste.</p>
<p>Um fator que dever ser levado em consideração é o cache do navegador. Para evitar que ele crie uma cópia da página na máquina local e interfira na medição, precisamos criar um header anti-caching. </p>
<h3>Criação do Header Anti-Caching e do Arquivo para Transferência</h3>
<p>Abaixo, o código PHP para criação do header anti-caching e do arquivo que será utilizado na transferência. No nosso tutorial, este código deverá ser posto na parte superior da página, acima do DOCTYPE. Veja:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
	//Header anti-caching. Força a revalidação da página
	header(&quot;Cache-Control: no-cache, must-revalidate&quot;); 

	// Expiração da página em cache no passado
	header(&quot;Expires: Sat, 26 Jul 1997 05:00:00 GMT&quot;); 

	//Abre um arquivo para escrita ou cria um caso não exista
	$arquivo = fopen(&quot;medidor-de-velocidade-de-internet.txt&quot;,&quot;w&quot;);

	//Tamanho do arquivo em KB
	$tamanho = 100;

	for($x=0; $x&lt;$tamanho; $x++) 

		//A função str_pad completa com 1024 '.' (pontos) a string da esquerda
		//Com isso cada looping é escrito 1KB no arquivo
		fwrite($arquivo, str_pad('', 1024, '.'));

	//Fecha o arquivo
	fclose($arquivo);

	//Pega todos os dados do arquivo recém criado
	//Estes dados serão utilizados na transferência do arquivo
	$dados = file_get_contents(&quot;medidor-de-velocidade-de-internet.txt&quot;);
?&gt;
</pre>
<h3>Medição da Velocidade de Conexão, Taxa de Transferência e Duração do Teste</h3>
<p>Abaixo, o código JavaScript utilizado para cálculo da Velocidade de Conexão , Taxa de Transferência e Duração do Teste. No nosso tutorial, este código deverá ser posto no head da página, ou seja, entre as tags “&lt;head&gt;&lt;/head&gt;”. Veja:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;

	//Pega o tempo inicial e final da medição e passa para segundos
	function pegaTempo(){
		return (new Date().getTime())/1000;
	}

	//Velocidade da conexão em Kbps
	var velocidadeConexao = function(){

		//Passa o tamanho do arquivo de KiloBytes para bits
		//e divide pela duração da medição (bits/segundo)
		var veloc = (&lt;?php echo $tamanho;?&gt;)*1024*8/(fim - inicio);

		var num_veloc = new Number();

		//Passa para Kilobits/segundo
		num_veloc = veloc/1000;

		//Limita a 2 casas decimais
		veloc = num_veloc.toFixed(2);

		//Retorna o valor da velocidade no elemento html velocidade
		document.getElementById(&quot;velocidade&quot;).innerHTML = veloc+&quot; Kbps&quot;;
	}

	//Taxa de transferência em KB/s
	var taxaDeTransferencia = function(){

		//Pega o tamanho do arquivo e divide pela duração da medição
		var taxa = (&lt;?php echo $tamanho;?&gt;)/(fim - inicio);

		var num_taxa = new Number();
		num_taxa = taxa;

		//Limita a 2 casas decimais
		taxa = num_taxa.toFixed(2);

		//Retorna o valor da taxa de transferência no elemento html taxa
		document.getElementById(&quot;taxa&quot;).innerHTML = taxa+&quot; KB/s&quot;;
	}

	//Duração do teste
	var duracao = function(){
		var tempo = fim - inicio;

		var num_tempo = new Number();
		num_tempo = tempo;

		//Limita a 2 casas decimais
		tempo = num_tempo.toFixed(2);

		document.getElementById(&quot;tempo&quot;).innerHTML = tempo+&quot; s&quot;;
	}

	//Carrega as funções ao término do carregamento da página
	window.onload = function (){
		velocidadeConexao();
		taxaDeTransferencia();
		duracao();
	}

&lt;/script&gt;
</pre>
<h3>Aparência do Resultado</h3>
<p>CSS para melhorar a aparência do resultado. Este código deverá ser posto no head da página, ou seja, entre as tags &#8220;&lt;head&gt;&lt;/head&gt;&#8221;. Veja:</p>
<pre class="brush: css; title: ; notranslate">
&lt;style type=&quot;text/css&quot;&gt;

	body {
		text-align: center; /*centraliza no IE*/
	}

	.resultado {
		width: 25%;
		margin-top: 20px;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
	}
	.resultado h1 {
		font-size: 1.3em;
		background: #4682b4;
		color: #fff;
		border: 2px double #b0c4de;
	}
	.resultado table {
		width: 100%;
		border: 1px solid #4682b4;
	}
	.resultado table th {
		text-align: right;
		padding: 4px;
		background: #4169e1;
		color: #fff;
	}
	.resultado table td {
		text-align: center;
		padding: 4px;
		background: #b0c4de;
		color: #ff0000;
		font-size: 0.9em;
		font-weight: bold;
	}

&lt;/style&gt;
</pre>
<h3>Página com os Resultados da Medição da Velocidade de Conexão</h3>
<p>Esta seção é a mais importante, pois é nela que vamos montar o quebra-cabeça. Vejamos. Logo abaixo da tag “&lt;title&gt;”, no lugar do comentário, deverá entrar o trecho de código do CSS e em seguida do trecho de código do JavaScript, vistos anteriormente.</p>
<p>Logo abaixo da tag &lt;body&gt;, vem a parte crítica do nosso código, pois é ali que o teste acontece. A variável inicio, presente no primeiro trecho de código JavaScript, armazena o tempo inicial do teste, e a variável fim, presente no segundo trecho de código JavaScript, armazena o tempo final do teste.</p>
<p>É neste trecho de código, &lt;!&#8211; $dados &#8211;&gt;, que os dados do arquivo que está no servidor serão gerados. Porém, eles não aparecerão no navegador da máquina local porque estão comentados. Mas se você quiser vê-los, exiba o código-fonte da página. Aí sim, poderá ver os dados que foram enviados para a realização do teste.</p>
<p>E por último, criamos uma tabela para exibição do resultado.</p>
<p>Veja o código abaixo:</p>
<pre class="brush: php; highlight: [16,18,21]; html-script: true; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html&gt;
        &lt;head&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
		&lt;title&gt;Velocímetro de Internet&lt;/title&gt;
		&lt;!-- *** Aqui devem vir os códigos do CSS e JavaScript *** --&gt;
	&lt;/head&gt;

	&lt;body&gt;

	&lt;?php
		//Inicia o teste
		echo &lt;&lt;&lt;TESTE

				&lt;script type=&quot;text/javascript&quot;&gt;
					var inicio = pegaTempo();

				&lt;!-- $dados --&gt;

				&lt;script type=&quot;text/javascript&quot;&gt;
					var fim = pegaTempo();
				&lt;/script&gt;
TESTE;
		?&gt;

	&lt;div class=&quot;resultado&quot;&gt;

		&lt;h1&gt;Velocímetro de Internet&lt;/h1&gt;

		&lt;table&gt;
			&lt;tr&gt;
				&lt;th&gt;Velocidade da Conexão:&lt;/th&gt;
				&lt;td id=&quot;velocidade&quot;&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th&gt;Taxa de Transferência:&lt;/th&gt;
				&lt;td id=&quot;taxa&quot;&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th&gt;Duração do Teste:&lt;/th&gt;
				&lt;td id=&quot;tempo&quot;&gt;&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	&lt;/div&gt;	

&lt;/body&gt;
&lt;/html&gt;
</pre>
<h3>Considerações Importantes</h3>
<p>1ª) K para medida de armazenamento equivale a 1024 e K para medida de velocidade equivale a 1000. Por isso a necessidade de transformação de 100KB em bits (100*1024*8 = 819200 bits), para depois, no cálculo da velocidade, dividir por 1000 e transformar em Kbps;</p>
<p>2ª) Na string heredoc TESTE, o código JavaScript para pegar o tempo inicial e final da medição e os caracteres acima e abaixo do código de geração dos dados (<!-- $dados -->) podem afetar o resultado da medição da velocidade de 1kbps até 5kbps;</p>
<p>3ª) Quanto maior for o tamanho do arquivo criado, maior será a precisão da medição. Porém não crie um arquivo muito grande, pois fará com que o teste demore muito. O ideal é que o arquivo tenha até 512KB;</p>
<p>4ª) Ao criar o link para o medidor, você pode inserir um parâmetro na url para gerar uma string aleatória. Isso também impede que o cache do navegador afete o resultado. Exemplo: http://www.meusite.com.br/medidor_de_velocidade.php?nocache=a7E34teAsk;</p>
<p>5ª) A função microtime() do PHP não foi utilizada para cálculo de tempo, pois calcularia o tempo de execução do script no servidor. Isso nos daria velocidades irreais e astronômicas na casa dos Gbps;</p>
<p>6ª) Ao realizar o teste, feche todos os programas e janelas do seu computador para obter um resultado mais apurado da velocidade da sua internet;</p>
<p>7ª) Lembre-se do que falei no início do tutorial. Vários fatores influenciam a medição da velocidade de conexão com a internet. Portanto, são valores aproximados.</p>
<h3>Considerações Finais</h3>
<p>Espero que tenha sido útil e você tenha gostado. Este tutorial foi feito com muito carinho. </p>
<p>Deixe seu comentário e inscreva-se no Feed RSS do Scriptmaster.</p>
<p>Abraço e até o próximo tutorial.</p>
<p><strong>Link de demonstração:</strong> <a href="http://scriptmaster.com.br/tutorial/medidor-de-velocidade-de-internet.php" target="_blank">Medidor de velocidade de conexão com a internet</a><br />
<strong>Link de download do código:</strong> <a href="http://scriptmaster.com.br/tutorial/medidor-de-velocidade-de-internet-download.php">Download medidor de velocidade de conexão com a internet</a></p>
<p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;count=none&amp;text=Tutorial%20PHP%20para%20medir%20a%20velocidade%20de%20conex%C3%A3o%20com%20a%20internet" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;counturl=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;count=none&amp;text=Tutorial%20PHP%20para%20medir%20a%20velocidade%20de%20conex%C3%A3o%20com%20a%20internet" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><!--<![endif]--><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;linkname=Tutorial%20PHP%20para%20medir%20a%20velocidade%20de%20conex%C3%A3o%20com%20a%20internet" title="Orkut" rel="nofollow" target="_blank"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fscriptmaster.com.br%2Ftutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet%2F&amp;title=Tutorial%20PHP%20para%20medir%20a%20velocidade%20de%20conex%C3%A3o%20com%20a%20internet" id="wpa2a_12"><img src="http://scriptmaster.com.br/ScriptMaster/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://scriptmaster.com.br/tutorial-php-para-medir-a-velocidade-de-conexao-com-a-internet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

