<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7186337892832277447</id><updated>2010-06-21T20:34:05.956-03:00</updated><title type='text'>PHP Didático</title><subtitle type='html'>O propósito deste Blog é fornecer subsídios para programadores iniciantes na linguagem PHP e tecnologias relacionadas, de forma clara, objetiva e didática.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://php.leandrolages.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7186337892832277447.post-1312813470857150726</id><published>2007-08-14T17:14:00.000-03:00</published><updated>2007-08-14T17:17:30.089-03:00</updated><title type='text'>Lista de Exercícios Nº 1</title><content type='html'>&lt;style type="text/css"&gt;
 .style1 {  font-family: Verdana, Arial, Helvetica, sans-serif;  font-weight: bold;  font-size: 11px; } 
 .style5 {font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;} 
.style10 {
 color: #FF0000;
 font-weight: bold;
}
&lt;/style&gt;
&lt;p align="justify" class="style5"&gt;Resolva os exercícios abaixo. No próximo post estaremos colocando as respostas destes exercícios. &lt;/p&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exerc&amp;iacute;cio 1&lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;
  &lt;div align="justify"&gt;
   &lt;p&gt;Modifique o exemplo 1 do post sobre estruturas de repeti&amp;ccedil;&amp;atilde;o para que o conte&amp;uacute;do gerado pela p&amp;aacute;gina fique fora do bloco PHP intercalando as estruturas de controle do exemplo. &lt;/p&gt;
 &lt;/div&gt; &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exerc&amp;iacute;cio 2&lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;&lt;div align="justify"&gt;
      &lt;p&gt;Crie um script usando la&amp;ccedil;o FOR e WHILE que escreva um mesmo texto em cada linha com tamanhos de fonte diferentes. Para isso tome como base a seguinte tag HTML               &amp;lt;font size=&amp;rdquo;x&amp;rdquo;&amp;gt; Texto &amp;lt;/font&amp;gt;, onde x varia de 1 a 7&lt;/p&gt;
    &lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exerc&amp;iacute;cio 3 &lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;&lt;div align="justify"&gt;
      &lt;p&gt;Considere duas vari&amp;aacute;veis, &lt;span class="style10"&gt;$linha&lt;/span&gt; e &lt;span class="style10"&gt;$coluna&lt;/span&gt;, no in&amp;iacute;cio de um script, inicializadas pelo programador com quaisquer valores. Crie um script que crie uma tabela HTML de &lt;span class="style10"&gt;$linha&lt;/span&gt; linhas e &lt;span class="style10"&gt;$coluna&lt;/span&gt; colunas  e dentro de cada c&amp;eacute;lula informe as coordenadas da mesma. &lt;/p&gt;
    &lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7186337892832277447-1312813470857150726?l=php.leandrolages.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://php.leandrolages.com/feeds/1312813470857150726/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7186337892832277447&amp;postID=1312813470857150726&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/1312813470857150726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/1312813470857150726'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/2007/08/lista-de-exerccios-n-1.html' title='Lista de Exercícios Nº 1'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08299051895132429549'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7186337892832277447.post-7553328420990960990</id><published>2007-08-09T13:29:00.000-03:00</published><updated>2008-12-13T04:33:58.038-03:00</updated><title type='text'>Estruturas de Controle - Parte II - Estruturas de Repetição</title><content type='html'>&lt;style type="text/css"&gt;
 .style1 {  font-family: Verdana, Arial, Helvetica, sans-serif;  font-weight: bold;  font-size: 11px; } 
 .style5 {font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;} 
 .style9 {font-family: "Courier New", Courier, monospace; font-weight: bold; font-size: 14px; color: #FF0000; } 
&lt;/style&gt;

&lt;p align="justify" class="style5"&gt;Neste post, irei falar um pouco sobre as estruturas de controle usadas para repeti&amp;ccedil;&amp;atilde;o e o uso delas quando embutidas no HTML.&lt;/p&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 1 - Estruturas de Repeti&amp;ccedil;&amp;atilde;o WHILE/FOR &lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/RrtBOjaKJJI/AAAAAAAAAGY/neneAoa1_ao/s1600-h/exemplo1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/RrtBOjaKJJI/AAAAAAAAAGY/neneAoa1_ao/s400/exemplo1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5096739121578779794" /&gt;&lt;/a&gt; 
 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;
  &lt;div align="justify"&gt;
   &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;estrutura_repeticao&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este primeiro exemplo, com o nome &amp;quot;exemplo1.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\estrutura_repeticao\exemplo1.php&amp;quot;.&lt;/p&gt;
   &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/estrutura_decisao/exemplo1.php" target="_blank"&gt;http://localhost/estrutura_repeticao/exemplo1.php&lt;/a&gt;  .&lt;/p&gt;
   &lt;p&gt;Bem, agora vamos ao que importa saber deste exemplo. A estrutura segue as mesmas regras estabelecidades, sintaticamente falando, para a estrutura de deci&amp;atilde;o IF/ELSE. Com isso, caso haja apenas um comando a ser executado, tanto o FOR, quanto o WHILE, n&amp;atilde;o necessitam do uso de chaves. Caso haja mais de um comando, o uso de chaves &amp;eacute; obrigat&amp;oacute;rio.&lt;/p&gt;
   &lt;p&gt;Da mesma forma que nas estruturas IF/ELSE tamb&amp;eacute;m, pode-se fazer com que as estruturas deste exemplo sejam abertas num bloco PHP e fechados em outro. Isto permite fazer com que o bloco repita um mesmo trecho em HTML localizado entre os blocos do comando correspondente. No pr&amp;oacute;ximo post, estarei colocando um exerc&amp;iacute;cio a respeito.&lt;/p&gt;
   &lt;p&gt;O comando FOR necessita, em sua estrutura, de 3 argumentos (linha 4) separados por &amp;quot;;&amp;quot;. Respectivamente, estes argumentos representam a situa&amp;ccedil;&amp;atilde;o inicial da vari&amp;aacute;vel a ser testada, a condi&amp;ccedil;&amp;atilde;o de repeti&amp;ccedil;&amp;atilde;o e uma opera&amp;ccedil;&amp;atilde;o a ser usada para o incremento.&lt;/p&gt;
   &lt;p&gt;J&amp;aacute; o comando WHILE, em sua estrutura, necessita apenas de um argumento (linha 12). Este argumento corresponde ao segundo argumento do FOR, ou seja, corresponde &amp;agrave; condi&amp;ccedil;&amp;atilde;o de repeti&amp;ccedil;&amp;atilde;o. Em geral, o programador deve controlar os outros dois argumentos n&amp;atilde;o presentes nesta estrutura fora da estrutura WHILE. Em geral, a situa&amp;ccedil;&amp;atilde;o inicial da vari&amp;aacute;vel vem logo acima da estrutura WHILE (linha 11) e a opera&amp;ccedil;&amp;atilde;o de incremento vem dentro do bloco WHILE, como um dos &amp;uacute;ltimos comandos (linha 15). &lt;/p&gt;
   &lt;p&gt;O interessante tamb&amp;eacute;m &amp;eacute; saber o uso dos comandos &amp;quot;break&amp;quot; e &amp;quot;continue&amp;quot;, muito utilizados dentro de estruturas de repeti&amp;ccedil;&amp;atilde;o. Esses comandos, inclusive, podem ser utilizados dentro de qualquer estrutura de repeti&amp;ccedil;&amp;atilde;o. &lt;/p&gt;
   &lt;p&gt;O comando &amp;quot;continue&amp;quot;, se executado, automaticamente passa o controle para a pr&amp;oacute;xima repeti&amp;ccedil;&amp;atilde;o, sem executar qualquer trecho de c&amp;oacute;digo abaixo dele no la&amp;ccedil;o correspondente. J&amp;aacute; o comando &amp;quot;break&amp;quot;, se executado, interrompe toda a execu&amp;ccedil;&amp;atilde;o e passa o controle pro c&amp;oacute;digo logo abaixo da estrutura que o chamou.&lt;/p&gt;
   &lt;p&gt;O exemplo acima imprime na tela repeti&amp;ccedil;&amp;otilde;es de 0 a 9. O que acontece se tiramos os coment&amp;aacute;rios das linhas 5 e 13? No post de resposta dos exerc&amp;iacute;cios, iremos colocar os coment&amp;aacute;rios. &lt;/p&gt;
  &lt;/div&gt;
 &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 2 - Estrutura de Repeti&amp;ccedil;&amp;atilde;o FOREACH &lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;p class="style9"&gt;
 &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8zo6xv8Jrjo/RrtBYDaKJKI/AAAAAAAAAGg/uKCkm-r3A0U/s1600-h/exemplo2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_8zo6xv8Jrjo/RrtBYDaKJKI/AAAAAAAAAGg/uKCkm-r3A0U/s400/exemplo2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5096739284787537058" /&gt;&lt;/a&gt;
 &lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;&lt;div align="justify"&gt;
      &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;estrutura_repeticao&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este  exemplo, com o nome &amp;quot;exemplo2.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\estrutura_repeticao\exemplo2.php&amp;quot;.&lt;/p&gt;
      &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/estrutura_decisao/exemplo1.php" target="_blank"&gt;http://localhost/estrutura_repeticao/exemplo2.php&lt;/a&gt; .&lt;/p&gt;
      &lt;p&gt;Neste exemplo, usaremos a estrutura de repeti&amp;ccedil;&amp;atilde;o FOREACH. Esta estrutura &amp;eacute; utilizada para leitura de elementos de um vetor. Como no PHP os vetores n&amp;atilde;o s&amp;atilde;o necessariamente ordenados, n&amp;atilde;o podemos &amp;quot;varr&amp;ecirc;-los&amp;quot; com estruturas FOR ou WHILE, somente em caso de serem ordenados.&lt;/p&gt;
      &lt;p&gt;O c&amp;oacute;digo acima mostra as duas maneiras de utiliza&amp;ccedil;&amp;atilde;o da estrutura. A primeira realiza a itera&amp;ccedil;&amp;atilde;o buscando apenas os elementos do vetor (linha 9). J&amp;aacute; o segundo exemplo disponibiliza n&amp;atilde;o s&amp;oacute; os elementos a cada la&amp;ccedil;o, mas tamb&amp;eacute;m os &amp;iacute;ndices (linha 15).&lt;/p&gt;
      &lt;p&gt;A estrutura FOREACH segue sintaticamente os mesmos aspectos mencionados nas estruturas de controle de exemplos anteriores. Ou seja, n&amp;atilde;o obrigatoriedade de chaves com um comando e a possibilidade de se abrir a estrutura em um bloco PHP e fech&amp;aacute;-la em outro bloco PHP, permitindo a inclus&amp;atilde;o de HTML entre estes blocos, bem como o uso de &amp;quot;continue&amp;quot; e &amp;quot;break&amp;quot;. &lt;/p&gt;
      &lt;p&gt;No primeiro FOREACH, h&amp;aacute; a express&amp;atilde;o dentro do parentese utilizada para recupera&amp;ccedil;&amp;atilde;o apenas do elemento: primeiro colocamos o vetor a ser iterado (repetido) seguido da palavra &amp;quot;as&amp;quot; e de uma vari&amp;aacute;vel, cujo nome ser&amp;aacute; de nossa responsabilidade. No exemplo, colocamos &amp;quot;$valor&amp;quot;. Esta vari&amp;aacute;vel, a cada la&amp;ccedil;o, ter&amp;aacute; como valor o elemento correspondente do vetor, at&amp;eacute; que se chegue no final do vetor e todos os elementos sejam processados.&lt;/p&gt;
      &lt;p&gt;No segundo FOREACH, recuperamos ainda o valor do &amp;iacute;ndice. Para isso, ap&amp;oacute;s a palavra reservada &amp;quot;as&amp;quot;, incluimos duas vari&amp;aacute;veis separadas pelo operador &amp;quot;=&amp;gt;&amp;quot; (linha 15). O nome de ambas &amp;eacute; responsabilidade tamb&amp;eacute;m do programador. A primeira representar&amp;aacute; no la&amp;ccedil;o o &amp;iacute;ndice e a segunda representar&amp;aacute; o valor do elemento correspondente ao &amp;iacute;ndice. Desta forma, teremos uma &amp;quot;varredura&amp;quot; em todos os elementos do vetor, s&amp;oacute; que tamb&amp;eacute;m tendo acesso ao &amp;iacute;ndice do vetor. &lt;/p&gt;
    &lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p class="style5"&gt;Existem outras estruturas de repeti&amp;ccedil;&amp;atilde;o e formas de execu&amp;ccedil;&amp;atilde;o. Para saber mais sobre estruturas de controle em PHP, acesse o assunto no &lt;a href="http://www.php.net/manual/en/language.control-structures.php" target="_blank"&gt;manual do PHP&lt;/a&gt;.&lt;/p&gt;
&lt;p class="style5"&gt;Para fazer o download dos arquivos deste post, &lt;a href="http://www.leandrolages.com/blog/estrutura_repeticao.rar"&gt;clique aqui&lt;/a&gt;. &lt;/p&gt;
&lt;p class="style5"&gt;No pr&amp;oacute;ximo post sobre PHP, aprenderemos a trabalhar com formul&amp;aacute;rios HTML, pois atrav&amp;eacute;s deles que &amp;eacute; feita a entrada de dados no PHP. Antes haver&amp;aacute; um post com exerc&amp;iacute;cios sobre o que vimos at&amp;eacute; o momento. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7186337892832277447-7553328420990960990?l=php.leandrolages.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://php.leandrolages.com/feeds/7553328420990960990/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7186337892832277447&amp;postID=7553328420990960990&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/7553328420990960990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/7553328420990960990'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/2007/08/estruturas-de-controle-parte-i_09.html' title='Estruturas de Controle - Parte II - Estruturas de Repetição'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08299051895132429549'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8zo6xv8Jrjo/RrtBOjaKJJI/AAAAAAAAAGY/neneAoa1_ao/s72-c/exemplo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7186337892832277447.post-4179285531576979755</id><published>2007-08-06T10:47:00.000-03:00</published><updated>2008-12-13T04:33:58.438-03:00</updated><title type='text'>Estruturas de Controle - Parte I - Estruturas de Decisão</title><content type='html'>&lt;style type="text/css"&gt;
 .style1 {  font-family: Verdana, Arial, Helvetica, sans-serif;  font-weight: bold;  font-size: 11px; } 
 .style5 {font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;} 
 .style9 {font-family: "Courier New", Courier, monospace; font-weight: bold; font-size: 14px; color: #FF0000; } 
&lt;/style&gt;
&lt;p align="justify" class="style5"&gt;Neste post, irei falar um pouco sobre as estruturas de controle usadas para decis&amp;atilde;o e o uso delas quando embutidas no HTML.&lt;/p&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 1 - Estruturas de Decis&amp;atilde;o IF/ELSE &lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
 &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rrcm5DaKJII/AAAAAAAAAGI/tOFfpD4pOww/s1600-h/exemplo2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rrcm5DaKJII/AAAAAAAAAGI/tOFfpD4pOww/s400/exemplo2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5095584265002427522" /&gt;&lt;/a&gt;
 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;
  &lt;div align="justify"&gt;
   &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;estrutura_decisao&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este primeiro exemplo, com o nome &amp;quot;exemplo1.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\estrutura_decisao\exemplo1.php&amp;quot;.&lt;/p&gt;
   &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/estrutura_decisao/exemplo1.php" target="_blank"&gt;http://localhost/estrutura_decisao/exemplo1.php&lt;/a&gt;  .&lt;/p&gt;
   &lt;p&gt;Bem, agora vamos ao que importa saber deste exemplo. A estrutura de decis&amp;atilde;o IF/ELSE &amp;eacute; uma estrutura simples que, de acordo com uma condi&amp;ccedil;&amp;atilde;o, executa um ou outro bloco de comandos. Algumas particularidades precisam ser respeitadas no que diz respeito a essa estrutura. O uso de parenteses, por exemplo, &amp;eacute; obrigat&amp;oacute;rio. Cada bloco, considerando tanto IF quanto ELSE, dever&amp;atilde;o usar chaves para agrupar os comandos. A &amp;uacute;nica maneira de n&amp;atilde;o usar chaves em um dos blocos &amp;eacute; ter um comando apenas a ser executado ap&amp;oacute;s a decis&amp;atilde;o de qual bloco seguir.&lt;/p&gt;
   &lt;p&gt;Neste exemplo, temos a vari&amp;aacute;vel $idade. De acordo com o valor dela, podemos j&amp;aacute; perceber um certo dinamismo na p&amp;aacute;gina, ou seja, conte&amp;uacute;dos diferentes sendo escritos pela mesma p&amp;aacute;gina. Altere o valor da vari&amp;aacute;vel $idade de tal forma que as duas possibilidades de escrita sejam executadas. Como ainda n&amp;atilde;o aprendemos a entrar dados para scripts PHP, essa &amp;eacute; a melhor solu&amp;ccedil;&amp;atilde;o.&lt;/p&gt;
   &lt;p&gt;Neste exemplo, tamb&amp;eacute;m mostramos duas formas de se executar um IF/ELSE em PHP. Uma seria a forma tradicional (iniciada na linha 4) e a outra &amp;eacute; a forma em que podemos embutir no HTML (linha 14). Esta &amp;uacute;ltima forma permite que o programador abra um IF em um bloco PHP e termine em um bloco posterior, o mesmo valendo para o ELSE. Isto permite que entre estes blocos o programador coloque c&amp;oacute;digo HTML de forma mais tradicional, sem ter que usar o comando &amp;quot;echo&amp;quot; do PHP. &lt;/p&gt;
  &lt;/div&gt;
 &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 2 - Estrutura de Decis&amp;atilde;o SWITCH e IF/ELSEIF/ELSE &lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;p class="style9"&gt;
 &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rrcm1DaKJHI/AAAAAAAAAGA/4VKL3ehgjZU/s1600-h/exemplo1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rrcm1DaKJHI/AAAAAAAAAGA/4VKL3ehgjZU/s400/exemplo1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5095584196282950770" /&gt;&lt;/a&gt;
 &lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;&lt;div align="justify"&gt;
      &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;estrutura_decisao&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este  exemplo, com o nome &amp;quot;exemplo2.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\estrutura_decisao\exemplo2.php&amp;quot;.&lt;/p&gt;
      &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/estrutura_decisao/exemplo1.php" target="_blank"&gt;http://localhost/estrutura_decisao/exemplo2.php&lt;/a&gt; .&lt;/p&gt;
      &lt;p&gt;Neste exemplo, vamos introduzir duas novas estruturas de decis&amp;atilde;o: O SWITCH e uma varia&amp;ccedil;&amp;atilde;o do IF/ELSE, o IF/ELSEIF/ELSE. Estas estruturas tem como objetivo avaliar e decidir entre v&amp;aacute;rias possibilidades e n&amp;atilde;o apenas duas como no caso do IF/ELSE.&lt;/p&gt;
      &lt;p&gt;A estrutura SWITCH (linha 5) serve para avaliar o valor de uma express&amp;atilde;o. Em nosso exemplo, ele avalia o valor da vari&amp;aacute;vel $estacao. A express&amp;atilde;o dever&amp;aacute; sempre ser acompanhada do uso de parenteses. O uso de chaves tamb&amp;eacute;m &amp;eacute; obrigat&amp;oacute;rio. A estrutura SWITCH &amp;eacute; compostas de CASEs. Cada CASE &amp;eacute; respons&amp;aacute;vel por uma possibilidade. Os comando ent&amp;atilde;o s&amp;atilde;o executados at&amp;eacute; que um BREAK seja encontrado. Por op&amp;ccedil;&amp;atilde;o do programador, tamb&amp;eacute;m pode ser colocado, caso nem um CASE seja executado, um DEFAULT (linha 18), que ser&amp;aacute; executado sempre que nem um dos cases seja satisfeito. Esta estrutura n&amp;atilde;o &amp;eacute; obrigat&amp;oacute;ria.&lt;/p&gt;
      &lt;p&gt;J&amp;aacute; a estrutura IF/ELSEIF/ELSE nos permite v&amp;aacute;rias possibilidades tamb&amp;eacute;m. A diferen&amp;ccedil;a &amp;eacute; que a estrutura IF/ELSEIF/ELSE avaliam tamb&amp;eacute;m outros tipos de express&amp;otilde;es, usando outros operadores, como &amp;gt;, &amp;lt;, !=, %, etc. J&amp;aacute; o SWITCH  apenas se utiliza da igualdade. No nosso exemplo, as duas estruturas (SWITCH e IF/ELSEIF/ELSE) resolvem o mesmo problema. TOda estrutura SWITCH pode ser convertida em IF/ELSEIF/ELSE mas o contr&amp;aacute;rio NEM SEMPRE acontece. O IF e ELSEIF funcionam como se fossem um CASE, sendo que o ELSE funciona como um DEFAULT, fazendo uma analogia entre as duas estruturas. &lt;/p&gt;
      &lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p class="style5"&gt;Para saber mais sobre express&amp;otilde;es em PHP, acesse o assunto no &lt;a href="http://www.php.net/manual/en/language.expressions.php" target="_blank"&gt;manual do PHP&lt;/a&gt;. &lt;/p&gt;
&lt;p class="style5"&gt;Para saber mais sobre operadores em PHP, acesse o assunto no &lt;a href="http://www.php.net/manual/en/language.operators.php" target="_blank"&gt;manual do PHP&lt;/a&gt;.&lt;/p&gt;
&lt;p class="style5"&gt;Existem outras estruturas de decis&amp;atilde;o e formas de execu&amp;ccedil;&amp;atilde;o. Para saber mais sobre estruturas de controle em PHP, acesse o assunto no &lt;a href="http://www.php.net/manual/en/language.control-structures.php" target="_blank"&gt;manual do PHP&lt;/a&gt;.&lt;/p&gt;
&lt;p class="style5"&gt;Para fazer o download dos arquivos deste post, &lt;a href="http://www.leandrolages.com/blog/estrutura_decisao.rar"&gt;clique aqui&lt;/a&gt;. &lt;/p&gt;
&lt;p class="style5"&gt;No pr&amp;oacute;ximo post falaremos sobre as estruturas de controle em PHP. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7186337892832277447-4179285531576979755?l=php.leandrolages.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://php.leandrolages.com/feeds/4179285531576979755/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7186337892832277447&amp;postID=4179285531576979755&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/4179285531576979755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/4179285531576979755'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/2007/08/estruturas-de-controle-parte-i.html' title='Estruturas de Controle - Parte I - Estruturas de Decisão'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08299051895132429549'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rrcm5DaKJII/AAAAAAAAAGI/tOFfpD4pOww/s72-c/exemplo2.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7186337892832277447.post-6927257654254023410</id><published>2007-08-01T17:14:00.000-03:00</published><updated>2008-12-13T04:33:58.842-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Referência da Linguagem'/><title type='text'>Tipos de Dados</title><content type='html'>&lt;style type="text/css"&gt;
 .style1 {  font-family: Verdana, Arial, Helvetica, sans-serif;  font-weight: bold;  font-size: 11px; } 
 .style5 {font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;} 
 .style9 {font-family: "Courier New", Courier, monospace; font-weight: bold; font-size: 14px; color: #FF0000; } 
&lt;/style&gt;
&lt;p align="justify" class="style5"&gt;Neste post, irei falar um pouco sobre tipagem de dados em PHP, de forma que o leitor possa ter uma visão geral de como funciona na linguagem.&lt;/p&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 1 - Tipos de Dados Básicos&lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
 &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8zo6xv8Jrjo/RrDqBzaKJFI/AAAAAAAAAFw/aoHlyXy9kPw/s1600-h/exemplo1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_8zo6xv8Jrjo/RrDqBzaKJFI/AAAAAAAAAFw/aoHlyXy9kPw/s400/exemplo1.jpg" alt="" id="BLOGGER_PHOTO_ID_5093828495256724562" border="0" /&gt;&lt;/a&gt;
 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;
  &lt;div align="justify"&gt;
   &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;tipo_dados&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este primeiro exemplo, com o nome &amp;quot;exemplo1.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\tipo_dados\exemplo1.php&amp;quot;.&lt;/p&gt;
   &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/tipo_dados/exemplo1.php" target="_blank"&gt;http://localhost/tipo_dados/exemplo1.php&lt;/a&gt;  .&lt;/p&gt;
   &lt;p&gt;Bem, agora vamos ao que importa saber deste exemplo. Primeiro, no PHP, não há necessidade de se declarar variável. O tipagem é feita em tempo de execução. Além disso, por ser uma linguagem fracamente tipada, não há a necessidade de conversão entre os tipos de dados nas operações que são feitas ao longo de seu programa. Podemos, por exemplo, somar uma string com um número inteiro e o resultado poderá ser um booleano.&lt;/p&gt;
   &lt;p&gt;De início, isso pode assustar um pouco. Mas o que acontece é que o interpretador PHP verifica a operação e faz as conversões de forma automática. Isso quer dizer que se estivermos somando duas variáveis, elas necessariamente devem ser de um tipo númerico. Portanto, antes de executar a operação, o PHP transforma estas variáveis para o tipo númerico.&lt;/p&gt;
   &lt;p&gt;De posse desta informação, algumas transformações devem ser percebidas pelo programador. Por exemplo, algumas regras para transformação de variáveis para o tipo booleano são consideradas no PHP. O inteiro 0(zero), o Float (0.0), string vazia ("") ou a string "0", são automaticamente reconhecidas como false. Outras valores são encarados como true.&lt;/p&gt;
   &lt;p&gt;Por padrão, o PHP possui 4 tipos básicos de acordo com nosso exemplo: String, Inteiro, Flutuante e Booleano. Existem outros tipo básicos que comentaremos ao longo dos post mais avançados do Blog. Mas para inicio de conversa isso basta.&lt;/p&gt;
   &lt;p&gt;Outra dica: &amp;agrave;s vezes abrimos o c&amp;oacute;digo PHP simplesmente para imprimir o conte&amp;uacute;do de uma vari&amp;aacute;vel. Quando isto ocorrer, podemos usar  a seguinte tag&amp;quot;&amp;lt;?= ?&amp;gt;&amp;quot;. Este sinal de igual (que deve ser colado na interroga&amp;ccedil;&amp;atilde;o) serve para imprimir o valor de uma express&amp;atilde;o apenas. Ou seja, caso seja necess&amp;aacute;rio imprimir uma vari&amp;aacute;vel ou express&amp;atilde;o, podemos usar este tipo de abordagem. &lt;/p&gt;
   &lt;p&gt;Vamos aos poucos também comentando sobre o HTML e suas tags. No exemplo acima, temos uma tabela com borda 1. A tag &amp;lt;TABLE&amp;gt; permite a criação de uma tabela. A tag &amp;lt;TR&amp;gt; cria uma linha dentro da tabela. &amp;lt;TH&amp;gt; e &amp;lt;TD&amp;gt; criam colunas sendo que &amp;lt;TH&amp;gt; é uma coluna de cabeçalho e &amp;lt;TD&amp;gt; uma coluna normal.&lt;/p&gt;
        &lt;/div&gt;
 &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 2 - Tipos de Dados Vetor &lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;p class="style9"&gt;
 &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/RrDqPjaKJGI/AAAAAAAAAF4/7XxEDySg-JM/s1600-h/exemplo2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/RrDqPjaKJGI/AAAAAAAAAF4/7XxEDySg-JM/s400/exemplo2.jpg" alt="" id="BLOGGER_PHOTO_ID_5093828731479925858" border="0" /&gt;&lt;/a&gt;
 &lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;&lt;div align="justify"&gt;
      &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;sintaxe_basica&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este  exemplo, com o nome &amp;quot;exemplo2.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\tipo_dados\exemplo2.php&amp;quot;.&lt;/p&gt;
      &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/tipo_dados/exemplo1.php" target="_blank"&gt;http://localhost/tipo_dados/exemplo2.php&lt;/a&gt; .&lt;/p&gt;
      &lt;p&gt;Neste exemplo, vamos perceber como &amp;eacute; simples trabalhar com vetores em PHP. Vetores nada mais s&amp;atilde;o do que estruturas hash (chave, valor). N&amp;atilde;o h&amp;aacute; a necessidade de se criar vetores ordenados nem iniciando de algum valor, como o ZERO por exemplo. A ordem de cria&amp;ccedil;&amp;atilde;o dos elementos do vetor &amp;eacute; a tomada como base para identificar a ordem dos elementos.&lt;/p&gt;
      &lt;p&gt;O vetor acima possui 5 elementos. Este exemplo mostra as duas maneiras que temos de se criar vetor. A primeira &amp;eacute; atribuindo a uma vari&amp;aacute;vel indexada um valor (linha 3). A partir deste momento, j&amp;aacute; se tem um vetor criado em mem&amp;oacute;ria cujo &amp;iacute;ndice &amp;eacute; 10 e valor &amp;quot;Curso PHP&amp;quot;. A pergunta &amp;eacute;: ao se criar este primeiro elemento, quantos elementos tem o meu vetor? Muita gente poderia imaginar a resposta como sendo 11, considerando o in&amp;iacute;cio do vetor do zero, sendo que apenas o vetor de &amp;iacute;ndice 10 estaria preenchido. Mas n&amp;atilde;o! Como dito anteriormente, estruturas de vetor n&amp;atilde;o seguem uma ordem pr&amp;eacute;-definida. A ordem de cria&amp;ccedil;&amp;atilde;o &amp;eacute; que conta. Portanto, considerando apenas a linha 3, o vetor tem apenas 1 elemento. &lt;/p&gt;
      &lt;p&gt;Isso vale at&amp;eacute; a finaliza&amp;ccedil;&amp;atilde;o do vetor. O segundo elemento criado (linha 4 ), possui como &amp;iacute;ndice o n&amp;uacute;mero 4. Por&amp;eacute;m, o primeiro elemento do vetor continua sendo o de &amp;iacute;ndice 10, mesmo que este &amp;iacute;ndice seja superior ao &amp;iacute;ndice 4. Batemos mais uma vez nesta tecla: a ordem de cria&amp;ccedil;&amp;atilde;o &amp;eacute; a ordem interna do vetor.&lt;/p&gt;
      &lt;p&gt;Outra informa&amp;ccedil;&amp;atilde;o &amp;uacute;til de se saber, &amp;eacute; que os &amp;iacute;ndices de um vetor n&amp;atilde;o precisam ser necessariamente num&amp;eacute;ricos (linha 5). Eles podem variar, dentro de um mesmo vetor, entre n&amp;uacute;meros e strings nas chaves. Vale ressaltar que n&amp;atilde;o h&amp;aacute; um n&amp;uacute;mero associado ao &amp;iacute;ndice no formato String. No caso da linha 5, o &amp;iacute;ndice &amp;eacute; &amp;quot;altura&amp;quot; e pronto. &lt;/p&gt;
      &lt;p&gt;Outra dica &amp;eacute; quando criamos um vetor sem especificar o &amp;iacute;ndice do mesmo (linha 6). Um &amp;iacute;ndice num&amp;eacute;rico &amp;eacute; criado automaticamente. A regra para cria&amp;ccedil;&amp;atilde;o do &amp;iacute;ndice &amp;eacute; a seguinte: &amp;uacute;ltimo n&amp;uacute;mero inteiro j&amp;aacute; criado anteriormente mais 1. Caso n&amp;atilde;o tenha sido criado nenhum &amp;iacute;ndice num&amp;eacute;rico anteriormente, o &amp;iacute;ndice ZERO &amp;eacute; atribu&amp;iacute;do ao elemento do vetor. Em nosso exemplo, qual seria o &amp;iacute;ndice do elemento da linha 6? A resposta &amp;eacute; 5.&lt;/p&gt;
      &lt;p&gt;A segunda maneira de se criar um vetor &amp;eacute; usando o construtor de linguagem (language constructor) &amp;quot;array&amp;quot;. Nele voc&amp;ecirc; coloca o indice e valor, separados por v&amp;iacute;rgula. A associa&amp;ccedil;&amp;atilde;o entre &amp;iacute;ndice e valor &amp;eacute; feito pelo operador &amp;quot;=&amp;gt;&amp;quot;. Caso n&amp;atilde;o se coloque o operador, estaremos criando o elemento apenas e o &amp;iacute;ndice &amp;eacute; din&amp;acirc;mico seguindo a regra mencionada anteriormente.&lt;/p&gt;
      &lt;p&gt;Por fim, usamos a fun&amp;ccedil;&amp;atilde;o &lt;strong&gt;print_r&lt;/strong&gt; para imprimir na tela todo o conte&amp;uacute;do do vetor, incluindo seus &amp;iacute;ndices. Fun&amp;ccedil;&amp;atilde;o boa para depurar o par &amp;iacute;ndice/valor de um vetor. &lt;/p&gt;
      &lt;p&gt;&amp;nbsp;&lt;/p&gt;
      &lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p class="style5"&gt;Para saber mais sobre Tipos de Dados, acesse o &lt;a href="http://www.php.net/manual/en/language.types.php" target="_blank"&gt;manual do PHP&lt;/a&gt;. &lt;/p&gt;
&lt;p class="style5"&gt;Para fazer o download dos arquivos deste post, &lt;a href="http://www.leandrolages.com/blog/tipo_dados.rar"&gt;clique aqui&lt;/a&gt;. &lt;/p&gt;
&lt;p class="style5"&gt;No pr&amp;oacute;ximo post falaremos sobre as estruturas de controle em PHP. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7186337892832277447-6927257654254023410?l=php.leandrolages.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://php.leandrolages.com/feeds/6927257654254023410/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7186337892832277447&amp;postID=6927257654254023410&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/6927257654254023410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/6927257654254023410'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/2007/08/tipos-de-dados.html' title='Tipos de Dados'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08299051895132429549'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8zo6xv8Jrjo/RrDqBzaKJFI/AAAAAAAAAFw/aoHlyXy9kPw/s72-c/exemplo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7186337892832277447.post-4126521529654080234</id><published>2007-07-30T23:01:00.000-03:00</published><updated>2008-12-13T04:33:59.605-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Referência da Linguagem'/><title type='text'>Sintaxe Básica do PHP</title><content type='html'>&lt;style type="text/css"&gt;&lt;br /&gt;&lt;!-- .style1 {  font-family: Verdana, Arial, Helvetica, sans-serif;  font-weight: bold;  font-size: 11px; } .style2 {  font-family: "Courier New", Courier, monospace;  font-weight: bold;  font-size: 14px; } .style3 {color: #FF0000} .style4 {color: #0000FF} .style5 {font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;} .style6 {font-family: "Courier New", Courier, monospace; font-weight: bold; font-size: 14px; color: #009900; } .style9 {font-family: "Courier New", Courier, monospace; font-weight: bold; font-size: 14px; color: #FF0000; } .style12 {color: #009900} --&gt;&lt;br /&gt;&lt;/style&gt;

&lt;p align="justify" class="style5"&gt;Bem...a partir deste post iremos criar nossos primeiros scripts em PHP. Antes de iniciar com a sintaxe b&amp;aacute;sicas e primeiros exemplos, vou citar alguns editores utilizados para editar c&amp;oacute;digo PHP.&lt;/p&gt;
&lt;p align="justify" class="style5"&gt;O mais famoso e poderoso, na minha opini&amp;atilde;o, &amp;eacute; o &lt;a href="http://www.zend.com/products/zend_studio" target="_blank"&gt;Zend Studio&lt;/a&gt;. A &amp;uacute;nica desvantagem &amp;eacute; que a ferramenta &amp;eacute; propriet&amp;aacute;ria. Mas em compensa&amp;ccedil;&amp;atilde;o, existe o &lt;a href="http://www.eclipse.org/pdt" target="_blank"&gt;PDT (PHP Development Tools)&lt;/a&gt; que nada mais &amp;eacute; do que o &lt;a href="http://www.eclipse.org" target="_blank"&gt;Eclipse&lt;/a&gt; preparado para programa&amp;ccedil;&amp;atilde;o Web com PHP. Mas para nossos exemplos principalmente iniciais, sugiro um editor bem b&amp;aacute;sico mesmo, como o &lt;a href="http://notepad-plus.sourceforge.net/" target="_blank"&gt;Notepad ++&lt;/a&gt;. &lt;/p&gt;
&lt;p align="justify" class="style5"&gt;Agora vamos ao nosso primeiro exemplo:&lt;/p&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 1 - Colocando  HTML com PHP&lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
 &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq6YRDaKJDI/AAAAAAAAAFg/6LT4ByIbpIk/s1600-h/exemplo1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq6YRDaKJDI/AAAAAAAAAFg/6LT4ByIbpIk/s400/exemplo1.jpg" alt="" id="BLOGGER_PHOTO_ID_5093175647342830642" border="0" /&gt;&lt;/a&gt;
 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;&lt;div align="justify"&gt;
      &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;sintaxe_basica&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este primeiro exemplo, com o nome &amp;quot;exemplo1.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\sintaxe_basica\exemplo1.php&amp;quot;.&lt;/p&gt;
      &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/sintaxe_basica/exemplo1.php" target="_blank"&gt;http://localhost/sintaxe_basica/exemplo1.php&lt;/a&gt;  .&lt;/p&gt;
      &lt;p&gt;Bem, agora vamos ao que importa saber deste exemplo. Sabemos que o PHP &amp;eacute; uma linguagem embutida no HTML, servindo para gerar HTML de forma din&amp;acirc;mica. Desta forma, h&amp;aacute; a necessidade de se separar c&amp;oacute;digo PHP de c&amp;oacute;digo HTML. Esta separa&amp;ccedil;&amp;atilde;o &amp;eacute; feita pelas tags &amp;quot;&amp;lt;? ?&amp;gt;&amp;quot;. Todo c&amp;oacute;digo PHP necessariamente dever&amp;aacute; ficar dentro destas tags, e somente estes c&amp;oacute;digos ser&amp;atilde;o interpretados pelo servidor. Os demais ser&amp;atilde;o retornados normalmente.&lt;/p&gt;
      &lt;p&gt;Note que o comando &amp;quot;echo&amp;quot; serve para imprimir na tela. Observe tamb&amp;eacute;m que dentro da string executada pelo comando tamb&amp;eacute;m existe c&amp;oacute;digo HTML. Portanto, existem basicamente duas formas de gerar conte&amp;uacute;do HTML atrav&amp;eacute;s de um script PHP. Uma delas &amp;eacute; deixando o c&amp;oacute;digo HTML fora das tags do PHP. A outra, de dentro do bloco PHP, somente com um comando de sa&amp;iacute;da de string, como o &amp;quot;echo&amp;quot;.&lt;/p&gt;
      &lt;p&gt;Ainda, todo comando PHP termina com &amp;quot;;&amp;quot;. Isto permite que um comando inicie numa linha e termine na outra. Em outros posts veremos exemplos disso.&lt;/p&gt;
      &lt;p&gt;Este exemplo imprime na tela a frase &amp;quot;Bem-vindo ao curso de PHP!&amp;quot; em negrito (escrito pelo HTML fora do c&amp;oacute;digo PHP) e it&amp;aacute;lico (Escrito pelo &amp;quot;echo&amp;quot; do bloco PHP) mostrando as duas formas b&amp;aacute;sicas de gerar HTML.&lt;/p&gt;
      &lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC"&gt;&lt;span class="style1"&gt;Exemplo 2 - Uso de Vari&amp;aacute;veis &lt;/span&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;p class="style9"&gt;
 &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq6YhzaKJEI/AAAAAAAAAFo/-u9Kb0Dz1qs/s1600-h/exemplo2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq6YhzaKJEI/AAAAAAAAAFo/-u9Kb0Dz1qs/s400/exemplo2.jpg" alt="" id="BLOGGER_PHOTO_ID_5093175935105639490" border="0" /&gt;&lt;/a&gt;
 &lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#CCCCCC" class="style1"&gt;Coment&amp;aacute;rios:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="style5"&gt;&lt;div align="justify"&gt;
      &lt;p&gt;Levando em considera&amp;ccedil;&amp;atilde;o a instala&amp;ccedil;&amp;atilde;o feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome &amp;quot;sintaxe_basica&amp;quot; dentro do diret&amp;oacute;rio c:\webroot. Dentro desta pasta salvamos este  exemplo, com o nome &amp;quot;exemplo2.php&amp;quot;. Desta forma, o caminho completo do arquivo &amp;eacute; &amp;quot;c:\webroot\sintaxe_basica\exemplo2.php&amp;quot;.&lt;/p&gt;
      &lt;p&gt;Para acessar o arquivo atrav&amp;eacute;s de um navegador, digite no mesmo a seguinte URL: &lt;a href="http://localhost/sintaxe_basica/exemplo1.php" target="_blank"&gt;http://localhost/sintaxe_basica/exemplo2.php&lt;/a&gt; .&lt;/p&gt;
      &lt;p&gt;Neste exemplo, inicialmente mostramos as 3 formas de coment&amp;aacute;rios em PHP. A primeira delas &amp;eacute; a forma que temos de criar coment&amp;aacute;rios multilinhas, iniciando /* e finalizando com */. As outras duas formas s&amp;atilde;o coment&amp;aacute;rios de uma linha e s&amp;atilde;o o &amp;quot;//&amp;quot; e o &amp;quot;#&amp;quot;.&lt;/p&gt;
      &lt;p&gt;O bloco de comandos em PHP tamb&amp;eacute;m pode vir com as tags &amp;quot;&amp;lt;?php ?&amp;gt;&amp;quot;. Esta forma muitas vezes &amp;eacute; melhor para n&amp;atilde;o confundir com arquivos XML. Mas o &amp;quot;php&amp;quot; deve ser colado na &amp;quot;?&amp;quot; para funcionar.&lt;/p&gt;
      &lt;p&gt;Toda vari&amp;aacute;vel em PHP come&amp;ccedil;a com um &amp;quot;$&amp;quot;. Neste exemplo, temos a vari&amp;aacute;vel &lt;strong&gt;$nome&lt;/strong&gt;.   O tipo de dado tamb&amp;eacute;m &amp;eacute; din&amp;acirc;mico e decidido em tempo de execu&amp;ccedil;&amp;atilde;o. As vari&amp;aacute;veis devem sempre come&amp;ccedil;ar por caracteres alfanum&amp;eacute;ricos ou &amp;quot;_&amp;quot;. Nunca iniciar as vari&amp;aacute;veis com n&amp;uacute;meros.&lt;/p&gt;
      &lt;p&gt;Em uma string, pode ser usado tanto aspas duplas quanto aspas simples. No caso de se usar aspas duplas, voc&amp;ecirc; pode colocar a vari&amp;aacute;vel dentro da string que o valor dela &amp;eacute; substitu&amp;iacute;do, j&amp;aacute; que as vari&amp;aacute;veis possuem um &amp;quot;$&amp;quot; (linha 13). Isto facilita. Por&amp;eacute;m, na hora de usar aspas simples, essa transforma&amp;ccedil;&amp;atilde;o n&amp;atilde;o ocorre (linha 14).&lt;/p&gt;
      &lt;p&gt;Caso voc&amp;ecirc; queira, mesmo usando aspas duplas, n&amp;atilde;o substituir o valor da vari&amp;aacute;vel, voc&amp;ecirc; deve adicionar um slash (\), ou seja, uma barra invertida antes do &amp;quot;$&amp;quot; (linha 15). E caso queira, usando aspas simples, usar o valor da vari&amp;aacute;vel, s&amp;oacute; concatenando mesmo. Para concatenar strings no PHP usa-se o ponto (.). &lt;/p&gt;
    &lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p class="style5"&gt;Para saber mais sobre Sintaxe B&amp;aacute;sica da linguagem, acesse o &lt;a href="http://www.php.net/manual/pt_BR/language.basic-syntax.php" target="_blank"&gt;manual do PHP&lt;/a&gt;. &lt;/p&gt;
&lt;p class="style5"&gt;Para fazer o download dos arquivos deste post, &lt;a href="http://www.leandrolages.com/blog/sintaxe_basica.rar"&gt;clique aqui&lt;/a&gt;. &lt;/p&gt;
&lt;p class="style5"&gt;No pr&amp;oacute;ximo post falaremos sobre os tipos de dados em PHP. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7186337892832277447-4126521529654080234?l=php.leandrolages.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://php.leandrolages.com/feeds/4126521529654080234/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7186337892832277447&amp;postID=4126521529654080234&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/4126521529654080234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/4126521529654080234'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/2007/07/sintaxe-bsica-do-php.html' title='Sintaxe Básica do PHP'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08299051895132429549'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq6YRDaKJDI/AAAAAAAAAFg/6LT4ByIbpIk/s72-c/exemplo1.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7186337892832277447.post-9063877890745392425</id><published>2007-07-30T13:45:00.000-03:00</published><updated>2008-12-13T04:34:02.017-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalação e Configuração'/><title type='text'>Instalando Apache e PHP no Windows</title><content type='html'>Neste post, serão instalados o servidor Web Apache e o PHP. Além de configurar o servidor Web para que reconheça as páginas em PHP, pois o mesmo por si só não interpreta páginas PHP.
&lt;div style="text-align: justify;"&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Instalando e Configurando o Apache (Servidor Web)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;O arquivo de instalação do Apache poderá ser baixado diretamente de seu site &lt;a href="http://httpd.apache.org/" target="_blank"&gt;http://httpd.apache.org&lt;/a&gt;. Este guia de instalação irá utilizar a versão 2.0.xx do Apache para preparação de nosso ambiente. Se preferir, o link direto para download se encontra &lt;a href="http://ftp.unicamp.br/pub/apache/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi"&gt;aqui&lt;/a&gt;.

A instalação é simples e segue basicamente o aperto constante do botão NEXT. Abaixo serão exibidas as telas onde alterações serão feitas durante a instalação.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4YwzaKIpI/AAAAAAAAACI/YvuukY908pY/s1600-h/apache1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4YwzaKIpI/AAAAAAAAACI/YvuukY908pY/s400/apache1.jpg" alt="" id="BLOGGER_PHOTO_ID_5093035455315321490" border="0" /&gt;&lt;/a&gt;
Preencha conforme os dados acima. Estes campos indicam sua rede e colocando os dados acima (localhost) sempre funcionará. Lembrando também que o Apache rodará na porta 80.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8zo6xv8Jrjo/Rq4YkjaKIoI/AAAAAAAAACA/vo8y7p20VXU/s1600-h/apache2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_8zo6xv8Jrjo/Rq4YkjaKIoI/AAAAAAAAACA/vo8y7p20VXU/s400/apache2.jpg" alt="" id="BLOGGER_PHOTO_ID_5093035244861923970" border="0" /&gt;&lt;/a&gt;Quando aparecer acima, escolha a opção CHANGE. A mudança é para que o diretório de instalação seja o raiz, facilitando o acesso à estrutura de arquivos do Apache, conforme as duas figuras abaixo.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4aQDaKIqI/AAAAAAAAACQ/Yv9dNDb6ToQ/s1600-h/apache3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4aQDaKIqI/AAAAAAAAACQ/Yv9dNDb6ToQ/s400/apache3.jpg" alt="" id="BLOGGER_PHOTO_ID_5093037091697861282" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4aXzaKIrI/AAAAAAAAACY/sIqqdtAmgi8/s1600-h/apache4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4aXzaKIrI/AAAAAAAAACY/sIqqdtAmgi8/s400/apache4.jpg" alt="" id="BLOGGER_PHOTO_ID_5093037224841847474" border="0" /&gt;&lt;/a&gt;Desta forma, proceda normalmente clicando nos valores padrões da instalação. Isso fará com que seu Apache seja instalando, tanto os binários quanto os serviços. Para saber se a instalação ocorreu normalmente, abra seu navegador e acesse a url &lt;a href="http://localhost/" target="_blank"&gt;http://localhost&lt;/a&gt; conforme figura abaixo.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4a4zaKIsI/AAAAAAAAACg/h3TJ9hcSp1o/s1600-h/apache5.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 441px; height: 320px;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4a4zaKIsI/AAAAAAAAACg/h3TJ9hcSp1o/s400/apache5.jpg" alt="" id="BLOGGER_PHOTO_ID_5093037791777530562" border="0" /&gt;&lt;/a&gt;
Se esta tela aparecer, parabéns! Seu Apache está instalado corretamente. Agora iremos configurar o Apache, padronizando algumas diretivas de configuração de acordo com nossa necessidade.

Para isso, abrimos o arquivo de configuração do Apache. Este arquivo está sempre localizado no diretório “conf” da instalação do Apache. Em nosso caso será “C:/Apache2/Conf”. O nome do arquivo de configuração do Apache é httpd.conf. Em alguns casos, dependendo da sua configuração do Windows, apenas "httpd" será exibido. A extensão ".conf" poderá estar oculta devido a esta configuração.

Abra este arquivo. Vamos modificar inicialmente 2 diretivas de configuração apenas: o &lt;span style="font-weight: bold;"&gt;DocumentRoot&lt;/span&gt; e o &lt;span style="font-weight: bold;"&gt;DirectoryIndex&lt;/span&gt;.

Localizando a primeira diretiva no arquivo encontramos o seguinte valor para esta diretiva, conforme primeira figura abaixo. Esta diretiva significa o local(diretório) dentro do nosso sistema de arquivos onde devemos gravar as páginas HTML e PHP. Vamos modifica-la para “C:\webroot” conforme a segunda figura abaixo. Não esqueça de criar o diretório "webroot".

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4cGDaKItI/AAAAAAAAACo/Yvkez_Vcza0/s1600-h/apache6.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4cGDaKItI/AAAAAAAAACo/Yvkez_Vcza0/s400/apache6.jpg" alt="" id="BLOGGER_PHOTO_ID_5093039118922425042" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rq4cNTaKIuI/AAAAAAAAACw/3n5wII3qgaY/s1600-h/apache7.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rq4cNTaKIuI/AAAAAAAAACw/3n5wII3qgaY/s400/apache7.jpg" alt="" id="BLOGGER_PHOTO_ID_5093039243476476642" border="0" /&gt;&lt;/a&gt;A próxima diretiva que modificaremos é DirectoryIndex. Esta diretiva informa quais páginas serão acessadas por padrão caso não sejam colocadas no navegador. Ou seja, se digitarmos apenas http://localhost/ sem colocar nenhuma página, o servidor procurará e exibirá as páginas na ordem em que encontrar na diretiva. As figuras abaixo mostram, respectivamente, o valor padrão da diretiva e o valor alterado por nós.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4eJzaKIwI/AAAAAAAAADA/DoNoRCl4kWg/s1600-h/apache9.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4eJzaKIwI/AAAAAAAAADA/DoNoRCl4kWg/s400/apache9.jpg" alt="" id="BLOGGER_PHOTO_ID_5093041382370190082" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4eFzaKIvI/AAAAAAAAAC4/2NN0E84AmYc/s1600-h/apache8.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4eFzaKIvI/AAAAAAAAAC4/2NN0E84AmYc/s400/apache8.jpg" alt="" id="BLOGGER_PHOTO_ID_5093041313650713330" border="0" /&gt;&lt;/a&gt;Depois da alteração, salve o arquivo e reinicie o Apache. Para reiniciar, basta usar o ícone  localizado ao lado do relógio do Windows referente ao Monitor do Apache. Duplo clique nele abrirá a janela abaixo. Só clicar em "restart" que as alterações entrarão em vigor.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8zo6xv8Jrjo/Rq4e-jaKIxI/AAAAAAAAADI/ajOGN_Ell_I/s1600-h/apache10.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_8zo6xv8Jrjo/Rq4e-jaKIxI/AAAAAAAAADI/ajOGN_Ell_I/s400/apache10.jpg" alt="" id="BLOGGER_PHOTO_ID_5093042288608289554" border="0" /&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Instalando e Configurando o PHP 5&lt;/span&gt;
&lt;/li&gt;&lt;/ul&gt;Agora vamos instalar e configurar o PHP. É mais simples ainda pois não necessita de instalação de um programa executável. Você pode fazer o download do site &lt;a href="http://www.php.net/" target="_blank"&gt;http://www.php.net&lt;/a&gt; ou baixar diretamente clicando &lt;a href="http://br.php.net/distributions/php-5.2.3-Win32.zip"&gt;aqui&lt;/a&gt;.

Iremos também configurar o PHP em modo CGI, pois a instalação é mais simples e não há a necessidade de se copiar arquivos de um diretório para outro. A outra forma de instalar o PHP é como módulo do Apache, que torna a aplicação mais rápida, pois o PHP fica "embutido" dentro do servidor Web, além de ser mais segura. Porém, como estaremos montando um servidor de desenvolvimento, a facilidade de instalação compensa esta segurança, não tão importante no ambiente pessoal de desenvolvimento. Mas é sempre bom estar por dentro.

Para instalar basta abrir o arquivo ZIP e descompactar na pasta “C:/php”. Ao extrair usando algum programa descompactador, você já está com o PHP instalado, faltando apenas configura-lo.

O PHP assim como o apache possui um arquivo de configuração. Este arquivo é chamado “php.ini” e deve ficar na pasta raiz do PHP(C:/php). Porém, este arquivo, ao descompactar o php, vem em duas versões pré-configuradas: o “php.ini-dist” e o “php.ini-recommended”. Iremos usar nesta instalação o “php.ini-dist” já que o "recommended" é recomendável para ambientes de produção, que não é nosso caso.

Então renomeie o arquivo “php.ini-dist” para “php.ini” e abra-o. Assim como no Apache, o php.ini também possui diretivas. Neste momento, iremos modificar apenas uma: &lt;span style="font-weight: bold;"&gt;extension_dir&lt;/span&gt;. Esta diretiva significa em que diretório estarão armazenadas as dll de outras funções que não são nativas do PHP, como por exemplo, o MySQL.

Abaixo, o valor padrão e o valor modificado, respectivamente, sendo representados pelas figuras abaixo.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4hBzaKIyI/AAAAAAAAADQ/n8R3Kv5lxIg/s1600-h/php1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4hBzaKIyI/AAAAAAAAADQ/n8R3Kv5lxIg/s400/php1.jpg" alt="" id="BLOGGER_PHOTO_ID_5093044543466119970" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4hLDaKIzI/AAAAAAAAADY/xbyF1VOT0DU/s1600-h/php2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4hLDaKIzI/AAAAAAAAADY/xbyF1VOT0DU/s400/php2.jpg" alt="" id="BLOGGER_PHOTO_ID_5093044702379909938" border="0" /&gt;&lt;/a&gt;Para finalizar, como nos próximos posts faremos o uso do banco de dados MySQL, já iremos deixar o php preparado para o uso das funções que manipula a mesma. Para isto, basta localizarmos no "php.ini" a linha mostrada na figura abaixo, retirando o ";". Com isso, estamos habilitando o uso das funções do MySQL, que serão utilizadas neste blog em futuros posts, conforme mencionado acima.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4ixDaKI0I/AAAAAAAAADg/KOYPzrzSkuk/s1600-h/php3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4ixDaKI0I/AAAAAAAAADg/KOYPzrzSkuk/s400/php3.jpg" alt="" id="BLOGGER_PHOTO_ID_5093046454726566722" border="0" /&gt;&lt;/a&gt;Com isso, salvamos o arquivo “php.ini”. Neste momento já temos o PHP instalado juntamente com o Apache, mas ainda não temos o Apache reconhecendo páginas PHP. Para que isso ocorra devemos adicionar 3 linhas &lt;span style="font-weight: bold;"&gt;no final do arquivo “httpd.conf”&lt;/span&gt; conforme figura abaixo.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rq4jWTaKI1I/AAAAAAAAADo/pff9upLWu-k/s1600-h/php4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_8zo6xv8Jrjo/Rq4jWTaKI1I/AAAAAAAAADo/pff9upLWu-k/s400/php4.jpg" alt="" id="BLOGGER_PHOTO_ID_5093047094676693842" border="0" /&gt;&lt;/a&gt;Salvamos o arquivo “httpd.conf” e reiniciamos o Apache novamente. Para testarmos se o PHP realmente está sendo reconhecido pelo Apache, vamos criar um arquivo chamado “index.php” e salva-lo dentro do diretório “c:\webroot”. O conteúdo deste arquivo será:
&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;

&amp;lt;?
phpinfo();
?&amp;gt;

&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;Depois, basta abrir o navegador  e digitar o endereço &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 51);font-size:100%;" &gt;http://localhost/&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; e verificar se o resultado da página é semelhante ao da figura abaixo.&lt;/span&gt;&lt;/span&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4kXDaKI2I/AAAAAAAAADw/2Y0jZuPlzuk/s1600-h/php5.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4kXDaKI2I/AAAAAAAAADw/2Y0jZuPlzuk/s400/php5.jpg" alt="" id="BLOGGER_PHOTO_ID_5093048207073223522" border="0" /&gt;&lt;/a&gt; &lt;p class="western" style="margin-bottom: 0in;"&gt;Se isso ocorrer, nosso ambiente está totalmente preparado. Agora vamos começar a criar nossos primeiros scripts PHP nos próximos posts.
&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7186337892832277447-9063877890745392425?l=php.leandrolages.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://php.leandrolages.com/feeds/9063877890745392425/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7186337892832277447&amp;postID=9063877890745392425&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/9063877890745392425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/9063877890745392425'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/2007/07/instalando-o-ambiente-no-windows.html' title='Instalando Apache e PHP no Windows'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08299051895132429549'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8zo6xv8Jrjo/Rq4YwzaKIpI/AAAAAAAAACI/YvuukY908pY/s72-c/apache1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7186337892832277447.post-8835224538948895403</id><published>2007-07-30T12:57:00.000-03:00</published><updated>2008-12-13T04:34:02.187-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Introdução'/><title type='text'>Introdução à Arquitetura Web</title><content type='html'>&lt;div style="text-align: justify;"&gt;O desenvolvimento de Aplicações Web difere do desenvolvimento tradicional de Aplicações Desktop. No ambiente Desktop, existe um programa executável, rodando na memória do computador juntamente com sua interface gráfica e seus comandos e variáveis. Já no ambiente Web isso não ocorre justamente pelo fato de que não existe um programa em memória e sim requisições HTTP. Os conjuntos dessas requisições formam o programa.
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;
Contudo, um motivo faz com que as Aplicações Web tenham uma atenção especial: a linguagem HTML. Ela é uma linguagem de marcação de hipertextos usada pelos navegadores de Internet responsável por apresentar o conteúdo na tela. Através dela criam-se links, tabelas, colocam-se imagens, enfim, alteramos todo o desenho do site e parte estrutural.

Porém, a linguagem HTML não é uma linguagem de programação! Ela não possui estruturas de controle (IF/ELSE/WHILE), não possui mecanismos de acesso a bancos de dados, arquivos textos, sockets, enfim, tudo que uma linguagem de programação moderna possui.

Como construir então Aplicações Web ? Ai, surgem as linguagens de script no lado do servidor (Server-Side) que, embutidas no HTML, suprem a carência da linguagem em termos de estrutura de controle, acesso a bancos de dados, etc. Entre as linguagens conhecidas temos PHP, ASP, Cold Fusion, JSP, entre outras.

A grande dificuldade de quem entra no mundo da programação para a internet é entender este limiar entre a linguagem HTML e a linguagem Server-Side que no nosso caso será o PHP. Este limiar será bastante discutido ao longo deste blog.

A figura 1 mostra como funciona uma requisição HTTP.

&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4LUDaKIkI/AAAAAAAAABg/qoDaOD9dv6Y/s1600-h/arquitetura.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4LUDaKIkI/AAAAAAAAABg/qoDaOD9dv6Y/s320/arquitetura.jpg" alt="" id="BLOGGER_PHOTO_ID_5093020667742921282" border="0" /&gt;&lt;/a&gt;
&lt;span style="font-size:78%;"&gt;Figura 1&lt;/span&gt;

&lt;div style="text-align: justify;"&gt;Abaixo um quadro comparativo das características da programação para internet e desktop.

&lt;table align="center" border="1" bordercolor="#000000" cellpadding="5" cellspacing="0" width="562"&gt;  &lt;col width="155"&gt;  &lt;col width="158"&gt;  &lt;col width="217"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="155"&gt;    &lt;p class="western" align="center"&gt;&lt;b&gt;Característica&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="158"&gt;    &lt;p class="western" align="center"&gt;&lt;b&gt;Aplicação Web&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="217"&gt;    &lt;p class="western" align="center"&gt;&lt;b&gt;Aplicação Desktop&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="155"&gt;    &lt;p class="western"&gt;Programa&lt;/p&gt;   &lt;/td&gt;   &lt;td width="158"&gt;    &lt;p class="western"&gt;Baseado em Requisições&lt;/p&gt;   &lt;/td&gt;   &lt;td width="217"&gt;    &lt;p class="western"&gt;Presente na memória&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="155"&gt;    &lt;p class="western"&gt;Interface Gráfica&lt;/p&gt;   &lt;/td&gt;   &lt;td width="158"&gt;    &lt;p class="western"&gt;HTML&lt;/p&gt;   &lt;/td&gt;   &lt;td width="217"&gt;    &lt;p class="western"&gt;Própria linguagem de Programação&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="155"&gt;    &lt;p class="western"&gt;Escopo das Variáveis&lt;/p&gt;   &lt;/td&gt;   &lt;td width="158"&gt;    &lt;p class="western"&gt;A cada requisição&lt;/p&gt;   &lt;/td&gt;   &lt;td width="217"&gt;    &lt;p class="western"&gt;Enquanto programa estiver aberto&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="155"&gt;    &lt;p class="western"&gt;Instalação/Atualização&lt;/p&gt;   &lt;/td&gt;   &lt;td width="158"&gt;    &lt;p class="western"&gt;Somente no Servidor&lt;/p&gt;   &lt;/td&gt;   &lt;td width="217"&gt;    &lt;p class="western"&gt;Em todas máquinas que usam     &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="155"&gt;    &lt;p class="western"&gt;Segurança dos Dados&lt;/p&gt;   &lt;/td&gt;   &lt;td width="158"&gt;    &lt;p class="western"&gt;Programador&lt;/p&gt;   &lt;/td&gt;   &lt;td width="217"&gt;    &lt;p class="western"&gt;Presente na Linguagem&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7186337892832277447-8835224538948895403?l=php.leandrolages.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://php.leandrolages.com/feeds/8835224538948895403/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7186337892832277447&amp;postID=8835224538948895403&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/8835224538948895403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7186337892832277447/posts/default/8835224538948895403'/><link rel='alternate' type='text/html' href='http://php.leandrolages.com/2007/07/introduo-arquitetura-web.html' title='Introdução à Arquitetura Web'/><author><name>Leandro Lages</name><uri>http://www.blogger.com/profile/08053583273262709752</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08299051895132429549'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_8zo6xv8Jrjo/Rq4LUDaKIkI/AAAAAAAAABg/qoDaOD9dv6Y/s72-c/arquitetura.jpg' height='72' width='72'/><thr:total>2</thr:total></entry></feed>