<?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>Arquivo para Programação em PHP - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/category/php-programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/category/php-programming/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Thu, 20 Apr 2023 14:39:09 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>O que são Funções Lambda em Python ou Funções Anônimas</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/o-que-sao-funcoes-lambda-em-python-ou-funcoes-anonimas/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/o-que-sao-funcoes-lambda-em-python-ou-funcoes-anonimas/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 20 Apr 2023 14:39:09 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Programação Funcional]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=19218</guid>

					<description><![CDATA[<p>Funções lambda em Python (anônimas) As funções lambda em Python (ou expressões lambda) são funções anônimas, ou seja, são funções sem nome que podem ser criadas e usadas no mesmo momento. Essas funções são definidas com a palavra-chave lambda, seguida de um ou mais argumentos separados por vírgula, um sinal de dois pontos e uma expressão que define o comportamento da função. Essas funções são chamadas de lambda por conta de sua semelhança com uma ferramenta disponível na linguagem de programação LISP. Da mesma forma que a instrução def, a expressão lambda cria uma função e a retorna, sem atribuir um nome a ela &#8211; daí o nome função anônima (sem nome). Lambda é uma expressão única, e não uma instrução, e por isso pode ser empregada em locais no código onde uma instrução def não poderia ser utilizada, como como dentro de uma lista ou na chamada de uma função. Qual a utilidade das expressões lambda? As expressões lambda são úteis na forma de um &#8220;atalho&#8221; de função, permitindo inserir uma definição de função diretamente no código que faz uso dessa função. São expressões opcionais, mas podem simplificar determinados cenários de codificação, por exemplo quando precisamos apenas executar funções [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/o-que-sao-funcoes-lambda-em-python-ou-funcoes-anonimas/">O que são Funções Lambda em Python ou Funções Anônimas</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Funções lambda em Python (anônimas)</h2>
<p>As <strong>funções lambda</strong> em Python (ou <em><strong>expressões lambda</strong></em>) são <em>funções anônimas</em>, ou seja, são funções sem nome que podem ser criadas e usadas no mesmo momento. Essas funções são definidas com a palavra-chave <em><strong>lambda</strong></em>, seguida de um ou mais argumentos separados por vírgula, um sinal de dois pontos e uma expressão que define o comportamento da função.</p>
<p>Essas funções são chamadas de lambda por conta de sua semelhança com uma ferramenta disponível na linguagem de programação LISP.</p>
<p>Da mesma forma que a instrução def, a expressão lambda cria uma função e a retorna, sem atribuir um nome a ela &#8211; daí o nome função anônima (sem nome).</p>
<p><strong>Lambda</strong> é uma expressão única, e não uma instrução, e por isso pode ser empregada em locais no código onde uma instrução def não poderia ser utilizada, como como dentro de uma lista ou na chamada de uma função.</p>
<h3>Qual a utilidade das expressões lambda?</h3>
<p>As expressões lambda são úteis na forma de um &#8220;atalho&#8221; de função, permitindo inserir uma definição de função diretamente no código que faz uso dessa função.</p>
<p>São expressões opcionais, mas podem simplificar determinados cenários de codificação, por exemplo quando precisamos apenas executar funções simples em trechos do código.</p>
<h3>Sintaxe de Expressões Lambda</h3>
<p>A sintaxe geral de uma função lambda é a seguinte:</p>
<pre><span style="color: #800080;"><strong>lambda argumentos: expressão</strong></span></pre>
<p>Por exemplo, para criar uma função lambda que calcula o quadrado de um número, podemos escrever:</p>
<pre><strong>quadrado = lambda x: x**2</strong></pre>
<p>Isso equivale a definir uma função comum da seguinte forma:</p>
<pre><strong>def quadrado(x):</strong>
<strong>    return x**2</strong></pre>
<p>As funções lambda são úteis em situações em que precisamos de uma função simples que seja usada apenas uma vez ou em que precisamos passar uma função como argumento para outra função.</p>
<p>Por exemplo, podemos usar uma função lambda para ordenar uma lista de dicionários pelo valor de uma determinada chave:</p>
<pre><strong>pessoas = [ {'nome': 'João', 'idade': 20}, {'nome': 'Maria', 'idade': 25}, {'nome': 'Pedro', 'idade': 18}]</strong>
<strong>pessoas_ordenadas = sorted(pessoas, key=lambda x: x['idade'])</strong>
<strong>print(pessoas_ordenadas)</strong></pre>
<p>Resultado:</p>
<pre><span style="color: #800000;"><strong>[{'nome': 'Pedro', 'idade': 18}, {'nome': 'João', 'idade': 20}, {'nome': 'Maria', 'idade': 25}]</strong></span></pre>
<p>Neste exemplo, a função lambda é usada como argumento da <a href="http://www.bosontreinamentos.com.br/programacao-em-python/17-python-dicionarios-parte-3-ordenacao-por-chaves-metodo-keys-e-funcao-sorted/">função sorted()</a> para definir que a lista de dicionários deve ser ordenada pelo valor da chave &#8216;idade&#8217;.</p>
<p>Outra aplicação comum das funções lambda é em conjunto com as funções <strong>map()</strong>, <strong>filter()</strong> e <strong>reduce()</strong>, que são funções de ordem superior que permitem aplicar uma função a cada elemento de uma sequência, filtrar elementos de uma sequência com base em uma condição ou reduzir uma sequência a um único valor.</p>
<p>Por exemplo, podemos usar uma função lambda combinada com a <a href="http://www.bosontreinamentos.com.br/programacao-em-python/como-usar-a-funcao-map-em-python/">função <strong>map()</strong></a> para calcular o cubo de cada número em uma lista:</p>
<pre><strong>numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</strong>
<strong>cubos = list(map(lambda x: x**3, numeros))</strong>
<strong>print(cubos)</strong></pre>
<p>Resultado:</p>
<pre><span style="color: #800000;"><strong>[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]</strong></span></pre>
<p>Neste exemplo, a função lambda é aplicada a cada elemento da lista <em>numeros</em> e o resultado é uma nova lista com os cubos dos números.</p>
<p>Em resumo, as funções lambda são uma forma prática e concisa de definir funções anônimas em Python. Elas são úteis em situações em que precisamos de uma função simples que seja usada apenas uma vez ou em que precisamos passar uma função como argumento para outra função.</p>
<p>Além disso, as funções lambda podem ser usadas em conjunto com outras funções de ordem superior para manipular sequências de dados de forma eficiente.</p>
<h3>O que é uma função de ordem superior?</h3>
<p>Em Python, uma função de ordem superior (ou <em>high-order function</em>) é uma função que pode receber outras funções como argumento e/ou retornar funções como resultado.</p>
<p>Isso significa que as funções de ordem superior tratam as funções como objetos de primeira classe, permitindo que elas sejam manipuladas e usadas de forma flexível em combinação com outras funções.</p>
<p>Uma das principais vantagens das funções de ordem superior é a sua capacidade de tornar o código mais genérico e reutilizável. Ao receber funções como argumentos, uma função de ordem superior pode ser usada com diferentes funções de entrada para realizar diferentes tarefas, sem a necessidade de reescrever a mesma lógica várias vezes.</p>
<p>Um exemplo comum de função de ordem superior em Python é justamente a <a href="http://www.bosontreinamentos.com.br/programacao-em-python/como-usar-a-funcao-map-em-python/">função built-in <strong>map()</strong></a>. Como vimos, essa função recebe uma função e um iterável como argumentos e aplica a função a cada elemento do iterável, retornando um novo iterável com os resultados.</p>
<p>Outros exemplos de funções de ordem superior em Python incluem filter(), reduce(), sorted(), any(), all(), entre outras.</p>
<p>A <a href="http://www.bosontreinamentos.com.br/analise-de-sistemas/7-linguagens-de-programacao-funcional-para-aprender-em-2022/">programação funcional</a> é um paradigma que faz uso intensivo de funções de ordem superior. Nesse paradigma, as funções são tratadas como cidadãs de primeira classe, permitindo a criação de programas mais concisos, legíveis e flexíveis.</p>
<p>O Python também suporta a programação funcional, embora não seja uma linguagem funcional pura, permitindo que os desenvolvedores tirem proveito das funções de ordem superior para escrever código mais eficiente e elegante.</p>
<h3>E <em>objeto de primeira classe</em>? O que é isso?</h3>
<p>Em Python, <em>objetos de primeira classe</em> são aqueles que podem ser tratados como qualquer outra variável, ou seja, podem ser passados como argumentos para funções, retornados como resultados de funções e atribuídos a variáveis.</p>
<p>Isso significa que, em Python, as funções também são objetos de primeira classe, o que permite a criação de funções de ordem superior. Essas funções podem receber outras funções como argumentos ou retornar funções como resultado.</p>
<p>Por exemplo, uma função de ordem superior em Python pode receber uma função como argumento e aplicar essa função a um conjunto de dados. Outra possibilidade é que a função de ordem superior possa retornar uma função, que pode ser armazenada em uma variável e usada posteriormente.</p>
<p>Essa característica é uma das razões pelas quais Python é uma linguagem tão poderosa e flexível, permitindo uma grande variedade de abordagens para solucionar problemas de programação.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/o-que-sao-funcoes-lambda-em-python-ou-funcoes-anonimas/">O que são Funções Lambda em Python ou Funções Anônimas</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/o-que-sao-funcoes-lambda-em-python-ou-funcoes-anonimas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como gerar números aleatórios em PHP com função rand()</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/como-gerar-numeros-aleatorios-em-php-com-funcao-rand/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/como-gerar-numeros-aleatorios-em-php-com-funcao-rand/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 20 Jan 2023 19:19:47 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=18754</guid>

					<description><![CDATA[<p>Como gerar números aleatórios em PHP com função rand() A linguagem PHP conta com funções para a geração de números aleatórios, e neste artigo vamos aprender a usar a função builtin rand() para este propósito. A função rand nos permite criar números aleatórios inteiros, com a configuração opcional de um intervalo de valores a partir do qual gerar o número. Por padrão, a  função gera um número aleatório entre 0 e o valor retornado pela função getrandmax(), que pode variar de um sistema operacional para outro. Na prática, a função rand() é um alias para a função mt_rand(), desde a versão 7.1.0 do PHP. Esta função gera um inteiro aleatório usando o algoritmo Mersenne Twister. Sintaxe: rand([int $min, int $max]): int onde: $min: Limite inferior do intervalo numérico. Valor padrão: 0 $max: Limite superior do intervalo numérico. Valor padrão: retorno de getrandmax(). Se a função for chamada sem a passagem dos valores de $min e $max, gerará um número aleatório dentro do intervalo padrão. Exemplos 1 &#8211; Gerar um número aleatório no intervalo padrão em PHP $numero = rand(); echo $numero."&#60;br&#62;"; Resultado: 949196895 2 &#8211; Gerar um valor aleatório dentro de um intervalo especificado, como entre 10 e 30. define("INFERIOR",10); define("SUPERIOR",30); [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/como-gerar-numeros-aleatorios-em-php-com-funcao-rand/">Como gerar números aleatórios em PHP com função rand()</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como gerar números aleatórios em PHP com função rand()</h2>
<p>A linguagem PHP conta com funções para a geração de números aleatórios, e neste artigo vamos aprender a usar a função builtin <em><strong>rand()</strong></em> para este propósito.</p>
<p>A função rand nos permite criar números aleatórios inteiros, com a configuração opcional de um intervalo de valores a partir do qual gerar o número.</p>
<p>Por padrão, a  função gera um número aleatório entre 0 e o valor retornado pela função <strong>getrandmax()</strong>, que pode variar de um sistema operacional para outro.</p>
<p>Na prática, a função rand() é um alias para a função <strong>mt_rand()</strong>, desde a versão 7.1.0 do PHP. Esta função gera um inteiro aleatório usando o algoritmo <em><strong>Mersenne Twister</strong></em>.</p>
<h3>Sintaxe:</h3>
<pre><span style="color: #800080;"><strong>rand([int $min, int $max]): int</strong></span></pre>
<p>onde:</p>
<ul>
<li><strong>$min</strong>: Limite inferior do intervalo numérico. Valor padrão: 0</li>
<li><strong>$max</strong>: Limite superior do intervalo numérico. Valor padrão: retorno de getrandmax().</li>
</ul>
<p>Se a função for chamada sem a passagem dos valores de $min e $max, gerará um número aleatório dentro do intervalo padrão.</p>
<h3>Exemplos</h3>
<h4>1 &#8211; Gerar um número aleatório no intervalo padrão em PHP</h4>
<pre><strong>$numero = rand();</strong>
<strong>echo $numero."&lt;br&gt;";</strong></pre>
<p>Resultado:</p>
<pre><span style="color: #003300;"><strong>949196895</strong></span></pre>
<h4>2 &#8211; Gerar um valor aleatório dentro de um intervalo especificado, como entre 10 e 30.</h4>
<pre><strong>define("INFERIOR",10);</strong>
<strong>define("SUPERIOR",30);</strong>
<strong>$numero = rand(INFERIOR, SUPERIOR);</strong>
<strong>echo $numero."&lt;br&gt;";</strong></pre>
<p>Resultado:</p>
<pre><span style="color: #003300;"><strong>22</strong></span></pre>
<p>Toda vez que a página web for recarregada, o script é novamente executado e gera um novo número aleatório, distinto.</p>
<h4>3 &#8211; Descobrir o valor máximo de número aleatório que pode ser gerado (limite <strong>$max</strong>).</h4>
<p>O valor máximo que a função rand() pode gerar depende do sistema operacional, e pode ser consultado com o uso da função <strong>getrandmax()</strong>, como podemos conferir executando o código abaixo:</p>
<pre><span style="color: #339966;"><strong>// Qual o valor máximo que pode ser gerado no sistema?</strong></span>
<strong>$maximo = getrandmax();</strong>
<strong>echo "Valor máximo aleatório: ".$maximo;</strong></pre>
<p>Resultado:</p>
<pre><span style="color: #003300;"><strong>Valor máximo aleatório: 2147483647</strong></span></pre>
<h3>Referências:</h3>
<ul>
<li><a href="https://www.php.net/manual/en/function.rand.php" target="_blank" rel="noopener">https://www.php.net/manual/en/function.rand.php</a></li>
</ul>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/como-gerar-numeros-aleatorios-em-php-com-funcao-rand/">Como gerar números aleatórios em PHP com função rand()</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/como-gerar-numeros-aleatorios-em-php-com-funcao-rand/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Como arredondar números em PHP com a função ROUND()</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/como-arredondar-numeros-em-php-com-a-funcao-round/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/como-arredondar-numeros-em-php-com-a-funcao-round/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 20 Jan 2023 14:43:05 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[Matemática]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=18735</guid>

					<description><![CDATA[<p>Função Round(): Arredondamento de números no PHP O arredondamento de números é uma tarefa trivial e corriqueira em sistemas que realizam cálculos que gerem valores de ponto flutuante (&#8220;com casas depois da vírgula&#8221;). Por exemplo, um cálculo financeiro pode gerar um número com 6 casas decimais, mas só nos interessam duas delas, pois nossa moeda, o Real, somente possui como divisão os centavos &#8211; que usam duas casas decimais apenas. Mas como arredondar números em um script escrito em PHP?  A função round em PHP permite arredondar um número de ponto flutuante, retornando um valor com uma precisão especificada (número de casas decimais). Sintaxe: round(int&#124;float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float onde: num: Valor a ser arredondado precision: número de dígitos decimais para o arredondamento. Se for um valor positivo, o número é arredondado para a quantidade de dígitos significativos após o ponto decimal. Se a precisão for um valor negativo, o número será arredondado para a quantidade de dígitos significativos antes do separador decimal. Por exemplo, se a precisão for -1, num será arredondado para a casa das dezenas, se for -2, para centenas, e assim por diante. mode: modo no qual o arredondamento ocorre. [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/como-arredondar-numeros-em-php-com-a-funcao-round/">Como arredondar números em PHP com a função ROUND()</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Função Round(): Arredondamento de números no PHP</h2>
<p>O arredondamento de números é uma tarefa trivial e corriqueira em sistemas que realizam cálculos que gerem valores de ponto flutuante (&#8220;com casas depois da vírgula&#8221;). Por exemplo, um cálculo financeiro pode gerar um número com 6 casas decimais, mas só nos interessam duas delas, pois nossa moeda, o Real, somente possui como divisão os centavos &#8211; que usam duas casas decimais apenas.</p>
<p>Mas como arredondar números em um script escrito em PHP? </p>
<p>A função round em PHP permite arredondar um número de ponto flutuante, retornando um valor com uma precisão especificada (número de casas decimais).</p>
<h3>Sintaxe:</h3>
<pre><strong>round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float</strong></pre>
<p>onde:</p>
<ul>
<li><em><strong>num</strong></em>: Valor a ser arredondado</li>
<li><em><strong>precision</strong></em>: número de dígitos decimais para o arredondamento. Se for um valor positivo, o número é arredondado para a quantidade de dígitos significativos após o ponto decimal.<br />
Se a precisão for um valor negativo, o número será arredondado para a quantidade de <a href="https://youtu.be/0_cN20fCALk" target="_blank" rel="noopener">dígitos significativos</a> antes do separador decimal. Por exemplo, se a precisão for -1, num será arredondado para a casa das dezenas, se for -2, para centenas, e assim por diante.</li>
<li><em><strong>mode</strong></em>: modo no qual o arredondamento ocorre. Pode ser:
<ul>
<li><strong>PHP_ROUND_HALF_UP</strong>: arredonda o número para longe do zero, se a última casa decimal arredondada possuir valor 5 ou maior. Por exemplo, 3,5 é arredondado para 4 e -3,5 é arredondado para -4.</li>
<li><strong>PHP_ROUND_HALF_DOWN</strong>: arredonda o número em direção ao zero, se a última casa decimal arredondada possuir valor 5 ou maior. Por exemplo, 3,5 é arredondado para 3 e -3,5 é arredondado para -3.</li>
<li><strong>PHP_ROUND_HALF_EVEN</strong>: arredonda o número para o valor par mais próximo, se a última casa decimal arredondada possuir valor 5 ou maior. Por exemplo, tanto 3,5 quanto 4,5 são arredondados para 4.</li>
<li><strong>PHP_ROUND_HALF_ODD</strong>: arredonda o número para o valor ímpar mais próximo, se a última casa decimal arredondada possuir valor 5 ou maior. Por exemplo, 3,5 é arredondado para 3 e 4,5 é arredondado para 5.</li>
</ul>
</li>
</ul>
<p>O valor arredondado é retornado como um número <em>float</em>.</p>
<h3>Exemplos</h3>
<div>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #ff0000;"><strong>$numero = 230.1480;</strong></span>
<span style="color: #ff0000;"><strong>echo round($numero, 2)."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>echo round($numero, 1)."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>echo round($numero, 0)."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>echo round($numero, -1)."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>echo round($numero, -2)."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>echo round($numero, 2, PHP_ROUND_HALF_DOWN)."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>echo round($numero, 1, PHP_ROUND_HALF_UP)."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<div> </div>
</div>
<div>Resultado:</div>
<pre><span style="color: #003300;"><strong>230.15</strong></span>
<span style="color: #003300;"><strong>230.1</strong></span>
<span style="color: #003300;"><strong>230</strong></span>
<span style="color: #003300;"><strong>230</strong></span>
<span style="color: #003300;"><strong>200</strong></span>
<span style="color: #003300;"><strong>230.15</strong></span>
<span style="color: #003300;"><strong>230.1</strong></span></pre>
<p>Outras funções que permitem realizar arredondamento de valores em PHP são as funções ceil() e floor().</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/como-arredondar-numeros-em-php-com-a-funcao-round/">Como arredondar números em PHP com a função ROUND()</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/como-arredondar-numeros-em-php-com-a-funcao-round/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de PHP &#8211; Excluindo dados do Banco de Dados</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-removendo-dados-do-banco-de-dados/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-removendo-dados-do-banco-de-dados/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sat, 08 Jan 2022 15:27:18 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=6076</guid>

					<description><![CDATA[<p>Excluindo dados do Banco de Dados MySQL Nesta lição vamos aprender a apagar (excluir) dados do banco de dados. É uma operação corriqueira, porém muito delicada, pois se for realizada de forma incorreta pode acarretar na perda de dados do banco, de forma irremediável se não houver backup. Usando nosso banco de dados de exemplo das lições anteriores, vamos efetuar a exclusão dos dados a partir dos nomes cadastrados na tabela Cadastro, com o comando SQL a seguir: DELETE FROM Cadastro WHERE NomeCliente='$nome';  Onde $nome é um valor informado pelo usuário em um formulário como o seguinte: Informe o nome a ser excluído: Ao clicar no botão Excluir, o nome do cliente a ser excluído é enviado para o script PHP que batizaremos de excluir.php para execução da declaração. Vamos ao exemplo: Código do exemplo Vamos criar dois arquivos: um de nome excluir.html, que conterá o formulário mostrado anteriormente, e outro de nome excluir.php, que irá efetuar a rotina de exclusão no banco usando os dados enviados pelo formulário via método POST. Arquivo excluir.html Segue o código da página contendo o formulário HTML: &#60;!DOCTYPE html&#62; &#60;html lang="pt-br"&#62; &#60;head&#62;     &#60;title&#62; Exclusão de Dados &#60;/title&#62;     &#60;meta charset="utf-8"&#62;     &#60;meta [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/curso-de-php-removendo-dados-do-banco-de-dados/">Curso de PHP &#8211; Excluindo dados do Banco de Dados</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Excluindo dados do Banco de Dados MySQL</h2>
<p>Nesta lição vamos aprender a apagar (excluir) dados do banco de dados. É uma operação corriqueira, porém muito delicada, pois se for realizada de forma incorreta pode acarretar na perda de dados do banco, de forma irremediável se não houver backup.</p>
<p>Usando nosso banco de dados de exemplo das lições anteriores, vamos efetuar a exclusão dos dados a partir dos nomes cadastrados na tabela <strong>Cadastro</strong>, com o comando SQL a seguir:</p>
<pre><span style="color: #ff0000;"><strong>DELETE FROM Cadastro WHERE NomeCliente='$nome'; </strong></span></pre>
<p>Onde <strong>$nome</strong> é um valor informado pelo usuário em um formulário como o seguinte:</p>
<form action="excluir.php" name="teste">Informe o nome a ser excluído: <input name="nome" type="text" /><br />
<input name="enviar" type="submit" value="Excluir" /></form>
<p>Ao clicar no botão Excluir, o nome do cliente a ser excluído é enviado para o script PHP que batizaremos de <strong>excluir.php</strong> para execução da declaração.</p>
<p>Vamos ao exemplo:</p>
<h3>Código do exemplo</h3>
<p>Vamos criar dois arquivos: um de nome excluir.html, que conterá o formulário mostrado anteriormente, e outro de nome <strong>excluir.php</strong>, que irá efetuar a rotina de exclusão no banco usando os dados enviados pelo formulário via método POST.</p>
<h4>Arquivo excluir.html</h4>
<p>Segue o código da página contendo o formulário HTML:</p>
<div>
<pre><span style="color: #ff0000;"><strong>&lt;!DOCTYPE html&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;html lang="pt-br"&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;head&gt;</strong></span>
<span style="color: #ff0000;"><strong>    &lt;title&gt; Exclusão de Dados &lt;/title&gt;</strong></span>
<span style="color: #ff0000;"><strong>    &lt;meta charset="utf-8"&gt;</strong></span>
<span style="color: #ff0000;"><strong>    &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/head&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;body&gt;</strong></span>
<span style="color: #ff0000;"><strong>
&lt;h3&gt;Excluir Cliente&lt;/h3&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;form name="Cadastro" action="excluir.php" method="POST"&gt;</strong></span>
<span style="color: #ff0000;"><strong>    &lt;label&gt;Digite o nome do cliente:&lt;/label&gt;</strong></span>
<span style="color: #ff0000;"><strong>    &lt;input type="text" name="nome"&gt;&lt;br&gt;&lt;br&gt;</strong></span>
<span style="color: #ff0000;"><strong>    &lt;input type="submit" name="enviar" value="Excluir"&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/form&gt;</strong></span>
<span style="color: #ff0000;"><strong>
&lt;/body&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/html&gt;</strong></span></pre>
<h4>Arquivo excluir.php</h4>
</div>
<p>Crie agora um novo script de nome <strong>excluir.php</strong> e insira o código a seguir nele:</p>
<pre><span style="color: #ff0000;"><strong>$strcon = mysqli_connect('localhost','fabio','123','banco_teste') or die('Erro ao conectar ao banco de dados requisitado');</strong></span>
<span style="color: #ff0000;"><strong>$nome = $_POST['nome'];</strong></span>
<span style="color: #ff0000;"><strong>$sql = "DELETE FROM Cadastro WHERE NomeCliente='$nome'"; </strong></span>
<span style="color: #ff0000;"><strong>mysqli_query($strcon,$sql) or die("Erro ao tentar excluir registro");

</strong></span><strong style="color: #008000;">// Verificar se algum registro foi excluído ou não</strong>
<strong style="color: #ff0000;">if (mysqli_affected_rows($strcon)) {  <span style="color: #008000;">// se houver linhas afetadas, o dado foi excluído</span></strong>
<span style="color: #ff0000;"><strong>    echo "Cliente excluído";</strong></span>
<span style="color: #ff0000;"><strong>}</strong></span>
<span style="color: #ff0000;"><strong>else {</strong></span>
<span style="color: #ff0000;"><strong>    mysqli_close($strcon);</strong></span>
<span style="color: #ff0000;"><strong>    die("Erro ao tentar excluir registro");</strong></span>
<span style="color: #ff0000;"><strong>}</strong></span>
<span style="color: #008000;"><strong>// Fechar a conexão</strong></span>
<span style="color: #ff0000;"><strong>mysqli_close($strcon);</strong></span>
<span style="color: #008000;"><strong>// Redirecionar para página inicial após 5 segundos:</strong></span>
<span style="color: #ff0000;"><strong>header("refresh:5;url=index.html");</strong></span></pre>
<div>Após executar a exclusão do registro, execute uma consulta para verificar se tudo correu como esperado. O nome informado deverá ter sido excluído. Se houver mais de um registro com o mesmo nome, também será excluído.</div>
<p>Na prática devemos utilizar campos que identifiquem de forma única o registro que será excluído, como campos com códigos ou números de identificação, de modo a evitar a exclusão acidental de registros.</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/curso-de-php-removendo-dados-do-banco-de-dados/">Curso de PHP &#8211; Excluindo dados do Banco de Dados</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-removendo-dados-do-banco-de-dados/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de PHP &#8211; Como fazer consulta com pesquisa de dados em banco MySQL</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-consulta-com-pesquisa-de-dados-em-banco-mysql/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-consulta-com-pesquisa-de-dados-em-banco-mysql/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Mon, 02 Apr 2018 18:08:46 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=11681</guid>

					<description><![CDATA[<p>Efetuar consulta com pesquisa de dados em banco MySQL Em nossa aula anterior mostramos como efetuar uma consulta a um banco de dados MySQL por meio de um script PHP, a qual retornava todo o conteúdo de uma das tabelas do banco. Agora, criaremos uma consulta que permitirá pesquisar os dados a serem retornados, aplicando um filtro à consulta. Nossa pesquisa nos permitirá exibir os cadastros realizados no banco de dados filtrando os registros por sexo &#8211; sendo &#8216;M&#8217; = Masculino, &#8216;F&#8217; = Feminino, ou ainda &#8216;N&#8217; = Não Declarado&#8217;. Vamos criar dois arquivos: um para realizar a pesquisa, que chamaremos de pesquisa.html, e outro para processar a pesquisa e exibir seu resultado, de nome pesquisa-resultado.php. Além disso, usaremos um arquivo para conexão ao banco de dados (conectar.php), e uma folha de estilos CSS para controlar a aparência da tabela de dados gerada (estilos.css). O banco de dados que será consultado recebeu o nome de banco_teste, e consiste em duas tabelas relacionadas, de nomes cadastro e listas. Criando os arquivos Primeiramente vamos criar a página de pesquisa (pesquisa.html): &#60;html&#62; &#60;head&#62; &#60;title&#62; Pesquisando Cadastros pelo Sexo &#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;h3&#62;Pesquisa&#60;/h3&#62;&#60;br&#62; &#60;form name="Cadastro" action="pesquisa-resultado.php" method="POST"&#62; &#60;label&#62;Selecione o Sexo do Cliente:&#60;/label&#62; &#60;select name="Sexo"&#62; [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/curso-de-php-consulta-com-pesquisa-de-dados-em-banco-mysql/">Curso de PHP &#8211; Como fazer consulta com pesquisa de dados em banco MySQL</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Efetuar consulta com pesquisa de dados em banco MySQL</h2>
<p>Em nossa aula anterior mostramos como <a href="http://www.bosontreinamentos.com.br/php-programming/curso-de-php-efetuando-uma-consulta-ao-banco-de-dados-e-retornando-dados-a-pagina/" target="_blank" rel="noopener">efetuar uma consulta a um banco de dados MySQL por meio de um script PHP</a>, a qual retornava todo o conteúdo de uma das tabelas do banco. Agora, criaremos uma consulta que permitirá pesquisar os dados a serem retornados, aplicando um filtro à consulta.</p>
<p>Nossa pesquisa nos permitirá exibir os cadastros realizados no banco de dados filtrando os registros por sexo &#8211; sendo &#8216;M&#8217; = Masculino, &#8216;F&#8217; = Feminino, ou ainda &#8216;N&#8217; = Não Declarado&#8217;.</p>
<p>Vamos criar dois arquivos: um para realizar a pesquisa, que chamaremos de <em><strong>pesquisa.html</strong></em>, e outro para processar a pesquisa e exibir seu resultado, de nome <em><strong>pesquisa-resultado.php</strong></em>. Além disso, usaremos um arquivo para conexão ao banco de dados (<strong><em>conectar.php</em></strong>), e uma folha de estilos CSS para controlar a aparência da tabela de dados gerada (<em><strong>estilos.css</strong></em>).</p>
<p>O banco de dados que será consultado recebeu o nome de <strong><em>banco_teste</em></strong>, e consiste em duas tabelas relacionadas, de nomes <em>cadastro</em> e <em>listas</em>.</p>
<h3>Criando os arquivos</h3>
<p>Primeiramente vamos criar a página de pesquisa (<em><strong>pesquisa.html</strong></em>):</p>
<pre><span style="color: #ff0000;"><strong>&lt;html&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;head&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;title&gt; Pesquisando Cadastros pelo Sexo &lt;/title&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/head&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;body&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;h3&gt;Pesquisa&lt;/h3&gt;&lt;br&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;form name="Cadastro" action="pesquisa-resultado.php" method="POST"&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;label&gt;Selecione o Sexo do Cliente:&lt;/label&gt;
&lt;select name="Sexo"&gt;</strong></span>
<span style="color: #ff0000;"><strong>  &lt;option value="M"&gt;Masculino&lt;/option&gt;</strong></span>
<span style="color: #ff0000;"><strong>  &lt;option value="F"&gt;Feminino&lt;/option&gt;</strong></span>
<span style="color: #ff0000;"><strong>  &lt;option value="N"&gt;Não Declarado&lt;/option&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/select&gt;&lt;br&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;input type="submit" name="enviar" value="Enviar"&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/form&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/body&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/html&gt;</strong></span></pre>
<p>Esta página possui um formulário onde  usuário pode selecionar o sexo que deseja consultar, em um menu suspenso, e a consulta é enviada ao script <em>pesquisa-resultado.php</em> para processamento.</p>
<h3>Script de processamento</h3>
<p>Vamos então criar o script de processamento da pesquisa (<em><strong>pesquisa-resultado.php</strong></em>):</p>
<pre><strong><span style="color: #ff0000;">&lt;?php</span></strong>
<span style="color: #339966;"><strong> // Conectando ao banco de dados:</strong></span>
<strong><span style="color: #ff0000;"> include_once("conectar.php");</span></strong>
 
<span style="color: #339966;"><strong> // Recebendo os dados a pesquisar</strong></span>
<strong><span style="color: #ff0000;"> $pesquisa = $_POST['Sexo'];</span></strong>
<strong><span style="color: #ff0000;">?&gt;
</span></strong>
<strong><span style="color: #ff0000;"> &lt;html&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;head&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;link href="estilos.css" rel="stylesheet" type="text/css"&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;title&gt;Resultado da pesquisa&lt;/title&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;/head&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;body&gt;</span></strong>
 
<span style="color: #339966;"><strong> &lt;!-- Criando tabela e cabeçalho de dados: --&gt;</strong></span>
<strong><span style="color: #ff0000;"> &lt;table border="1" style='width:50%'&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;tr&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;th&gt;NOME&lt;/th&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;th&gt;SOBRENOME&lt;/th&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;th&gt;SEXO&lt;/th&gt;</span></strong>
<strong><span style="color: #ff0000;"> &lt;/tr&gt;</span></strong>
 
<span style="color: #339966;"><strong> &lt;!-- Preenchendo a tabela com os dados do banco: --&gt;</strong></span>
<strong><span style="color: #ff0000;"> &lt;?php</span></strong>
<strong><span style="color: #ff0000;"> $sql = "SELECT * FROM cadastro WHERE Sexo = '$pesquisa'";</span></strong>
<strong><span style="color: #ff0000;"> $resultado = mysqli_query($strcon,$sql) or die("Erro ao retornar dados");</span></strong>
<span style="color: #339966;"><strong> 
 // Obtendo os dados por meio de um loop while</strong></span>
<strong><span style="color: #ff0000;"> while ($registro = mysqli_fetch_array($resultado))</span></strong>
<strong><span style="color: #ff0000;"> {</span></strong>
<strong><span style="color: #ff0000;">   $nome = $registro['NomeCliente'];</span></strong>
<strong><span style="color: #ff0000;">   $sobrenome = $registro['SobrenomeCliente'];</span></strong>
<strong><span style="color: #ff0000;">   $sexo = $registro['Sexo'];</span></strong>
<strong><span style="color: #ff0000;">   echo "&lt;tr&gt;";</span></strong>
<strong><span style="color: #ff0000;">   echo "&lt;td&gt;".$nome."&lt;/td&gt;";</span></strong>
<strong><span style="color: #ff0000;">   echo "&lt;td&gt;".$sobrenome."&lt;/td&gt;";</span></strong>
<strong><span style="color: #ff0000;">   echo "&lt;td&gt;".$sexo."&lt;/td&gt;";</span></strong>
<strong><span style="color: #ff0000;">   echo "&lt;/tr&gt;";</span></strong>
<strong><span style="color: #ff0000;"> }</span></strong>
<strong><span style="color: #ff0000;"> mysqli_close($strcon);</span></strong>
<strong><span style="color: #ff0000;"> echo "&lt;/table&gt;";</span></strong>
<strong><span style="color: #ff0000;">?&gt;</span></strong>
<strong><span style="color: #ff0000;">&lt;/body&gt;</span></strong>
<strong><span style="color: #ff0000;">&lt;/html&gt;</span></strong></pre>
<p>O script de processamento recebe os dados a pesquisar oriundos da página <strong>pesquisa.html</strong>, e realiza a pesquisa solicitada no banco de dados da aplicação. O resultado retornado é então exibido na página em uma tabela, contendo três colunas: nome, sobrenome e sexo.</p>
<h3>Arquivo de conexão ao banco de dados (<strong><em>conectar.php</em></strong>):</h3>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #339966;"><strong> /* Dados do Banco de Dados a conectar */</strong></span>
<span style="color: #ff0000;"><strong>$Servidor = 'localhost';</strong></span>
<span style="color: #ff0000;"><strong>$nomeBanco = 'banco_teste';</strong></span>
<span style="color: #ff0000;"><strong>$Usuario = 'fabio';</strong></span>
<span style="color: #ff0000;"><strong>$Senha = '123';</strong></span>
<span style="color: #ff0000;"><strong>$strcon = mysqli_connect($Servidor, $Usuario, $Senha, $nomeBanco); </strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<h3>Folha de estilos CSS (arquivo estilos.css &#8211; <em>opcional</em>):</h3>
<pre><span style="color: #993300;"><strong>table, th, td {</strong></span>
<span style="color: #993300;"><strong> width: 50%;</strong></span>
<span style="color: #993300;"><strong> border: 1px solid blue;</strong></span>
<span style="color: #993300;"><strong> border-collapse: collapse;</strong></span>
<span style="color: #993300;"><strong> padding: 3px;</strong></span>
<span style="color: #993300;"><strong> background-color: #CC8623;</strong></span>
<span style="color: #993300;"><strong>}</strong></span></pre>
<p>Após criar os arquivos de pesquisa e processamento da pesquisa, vamos criar o banco de dados que será usado nos testes.</p>
<h3>O Banco de Dados para testes</h3>
<p>A seguir temos o código para criação do banco de dados utilizado em nossos testes, exportado a partir do <strong>phpMyAdmin</strong>:</p>
<pre><span style="color: #800080;"><strong>SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";</strong></span>
<span style="color: #800080;"><strong>SET time_zone = "+00:00";</strong></span>
<span style="color: #339966;"><strong>-- Database: `banco_teste`:</strong></span>
<span style="color: #800080;"><strong>CREATE DATABASE IF NOT EXISTS `banco_teste` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;</strong></span>
<span style="color: #800080;"><strong>USE `banco_teste`;</strong></span>
<span style="color: #339966;"><strong>-- Estrutura da tabela `cadastro`:</strong></span>
<span style="color: #800080;"><strong>CREATE TABLE IF NOT EXISTS `cadastro` (</strong></span>
<span style="color: #800080;"><strong> `NomeCliente` varchar(20) DEFAULT NULL,</strong></span>
<span style="color: #800080;"><strong> `SobrenomeCliente` varchar(30) DEFAULT NULL,</strong></span>
<span style="color: #800080;"><strong> `Sexo` char(1) DEFAULT NULL</strong></span>
<span style="color: #800080;"><strong>) ENGINE=InnoDB DEFAULT CHARSET=latin1;</strong></span>
<span style="color: #339966;"><strong>-- Extraindo dados da tabela `cadastro`:</strong></span>
<span style="color: #800080;"><strong>INSERT INTO `cadastro` (`NomeCliente`, `SobrenomeCliente`, `Sexo`) VALUES</strong></span>
<span style="color: #800080;"><strong>('Fábio', 'dos Reis', 'M'),</strong></span>
<span style="color: #800080;"><strong>('Ana', 'Paulo', 'F'),</strong></span>
<span style="color: #800080;"><strong>('Ana', 'Maria', 'F'),</strong></span>
<span style="color: #800080;"><strong>('Jonas', 'Batista', 'M');</strong></span>
<span style="color: #339966;"><strong>-- Estrutura da tabela `listas`:</strong></span>
<span style="color: #800080;"><strong>CREATE TABLE IF NOT EXISTS `listas` (</strong></span>
<span style="color: #800080;"><strong> `ID_item` smallint(6) NOT NULL AUTO_INCREMENT,</strong></span>
<span style="color: #800080;"><strong> `Item` varchar(40) COLLATE utf8_unicode_ci NOT NULL,</strong></span>
<span style="color: #800080;"><strong> PRIMARY KEY (`ID_item`)</strong></span>
<span style="color: #800080;"><strong>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;</strong></span>
<span style="color: #339966;"><strong>-- Extraindo dados da tabela `listas`:</strong></span>
<span style="color: #800080;"><strong>INSERT INTO `listas` (`ID_item`, `Item`) VALUES</strong></span>
<span style="color: #800080;"><strong>(1, 'Laranja'),</strong></span>
<span style="color: #800080;"><strong>(2, 'Banana'),</strong></span>
<span style="color: #800080;"><strong>(3, 'Maçã'),</strong></span>
<span style="color: #800080;"><strong>(4, 'Uva'),</strong></span>
<span style="color: #800080;"><strong>(5, 'Caqui'),</strong></span>
<span style="color: #800080;"><strong>(6, 'Caju');</strong></span></pre>
<h3>Testando o script</h3>
<p>Vamos efetuar uma consulta aos registros cujo sexo é o feminino:</p>
<p><img decoding="async" class="aligncenter wp-image-11746 size-full" title="Pesquisa de registros com php e mysql" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/04/pesquisa-php-mysql.png" alt="Pesquisa de registros com php e mysql" width="355" height="158" /></p>
<p>A tabela a seguir mostra o resultado da pesquisa realizada:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11686 size-full" title="Resultado da consulta ao banco MySQL com PHP e filtro WHERE" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/consulta-SQL-MySQL-PHP.png" alt="Resultado da consulta ao banco MySQL com PHP e filtro WHERE" width="642" height="87" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/consulta-SQL-MySQL-PHP.png 642w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/consulta-SQL-MySQL-PHP-420x57.png 420w" sizes="auto, (max-width: 642px) 100vw, 642px" /></p>
<p>O valor enviado pelo formulário &#8211; no caso, a letra &#8216;F&#8217; &#8211; é usado para compor a consulta SQL realizada no banco de dados, e o resultado retornado é usado para preencher a tabela exibida na página.</p>
<p>Próximo: <a href="http://www.bosontreinamentos.com.br/php-programming/curso-de-php-inserindo-dados-em-um-banco-de-dados-mysql/">Como inserir dados em um banco de dados MySQL usando um script PHP</a>.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/curso-de-php-consulta-com-pesquisa-de-dados-em-banco-mysql/">Curso de PHP &#8211; Como fazer consulta com pesquisa de dados em banco MySQL</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-consulta-com-pesquisa-de-dados-em-banco-mysql/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Trabalhando com sessões em PHP e variável $_SESSION</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/trabalhando-com-sessoes-em-php-e-variavel-_session/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/trabalhando-com-sessoes-em-php-e-variavel-_session/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sat, 24 Mar 2018 13:31:46 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=11664</guid>

					<description><![CDATA[<p>Como trabalhar com sessões em PHP Trabalhar com o conceito de sessões permite que um conjunto de dados possam ser utilizados por um usuário durante todo o tempo em que acessa e navega dentro de uma aplicação Web, sendo persistidos. Desta forma, é possível, por exemplo, verificar se um usuário está logado no site, transportar o conteúdo de um carrinho de compras, controlar as permissões de execução do usuário, e muito mais.  A variável superglobal $_SESSION é um array associativo que contém variáveis de sessão que ficam disponíveis para o script atual e para as próximas páginas acessadas por um usuário. Criando uma sessão &#8211; função session_start() A função session_start() permite iniciar uma nova sessão ou resumir (continuar) uma sessão já existente. Sintaxe: bool session_start([array $opções = array()]) Retorno da função: TRUE se a sessão é iniciada com sucesso. FALSE se a sessão falha em iniciar. A sessão é iniciada ou resumida baseada em um identificador de sessão passado via requisição GET ou POST, ou ainda via um cookie. Exemplo 01: Vamos trabalhar com duas páginas php. Na primeira página vamos iniciar uma sessão e passar valores para duas variáveis de sessão criadas: &#60;?php // Página 01 session_start(); echo 'Esta [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/trabalhando-com-sessoes-em-php-e-variavel-_session/">Trabalhando com sessões em PHP e variável $_SESSION</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como trabalhar com sessões em PHP</h2>
<p>Trabalhar com o conceito de sessões permite que um conjunto de dados possam ser utilizados por um usuário durante todo o tempo em que acessa e navega dentro de uma aplicação Web, sendo persistidos. Desta forma, é possível, por exemplo, verificar se um usuário está logado no site, transportar o conteúdo de um carrinho de compras, controlar as permissões de execução do usuário, e muito mais. </p>
<p>A variável superglobal <strong>$_SESSION</strong> é um array associativo que contém variáveis de sessão que ficam disponíveis para o script atual e para as próximas páginas acessadas por um usuário.</p>
<h3>Criando uma sessão &#8211; função session_start()</h3>
<p>A função <em><strong>session_start()</strong></em> permite iniciar uma nova sessão ou resumir (continuar) uma sessão já existente.</p>
<h4>Sintaxe:</h4>
<pre><span style="color: #800080;"><strong>bool session_start([array $opções = array()])</strong></span></pre>
<p>Retorno da função:</p>
<ul>
<li>TRUE se a sessão é iniciada com sucesso.</li>
<li>FALSE se a sessão falha em iniciar.</li>
</ul>
<p>A sessão é iniciada ou resumida baseada em um identificador de sessão passado via requisição GET ou POST, ou ainda via um cookie.</p>
<h3>Exemplo 01:</h3>
<p>Vamos trabalhar com duas páginas php. Na primeira página vamos iniciar uma sessão e passar valores para duas variáveis de sessão criadas:</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #339966;"><strong>// Página 01

</strong></span><span style="color: #ff0000;"><strong>session_start();
</strong></span>
<span style="color: #ff0000;"><strong>echo 'Esta é a página 01, onde a sessão será criada';
</strong></span>
<span style="color: #ff0000;"><strong>$_SESSION['aula'] = 'PHP';</strong></span>
<span style="color: #ff0000;"><strong>$_SESSION['hora'] = time();
</strong></span>
<span style="color: #339966;"><strong>// Link para a página 02:</strong></span>
<span style="color: #ff0000;"><strong>echo '&lt;br /&gt;&lt;a href="pagina2.php"&gt;Clique para ir à página 02&lt;/a&gt;';</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>Após carregar a página 01, a sessão é criada e as variáveis de sessão &#8216;aula&#8217; e &#8216;hora&#8217; são declaradas e inicializadas. Elas poderão ser acessadas na página 02, clicando-se no link fornecido.<br />
A seguir está o código do arquivo pagina2.php:</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #339966;"><strong>// E esta é a página 02, onde recuperaremos as variáveis de sessão
</strong></span>
<span style="color: #ff0000;"><strong>session_start();
</strong></span>
<span style="color: #ff0000;"><strong>date_default_timezone_set('America/Sao_Paulo');</strong></span>
<span style="color: #ff0000;"><strong>echo 'Agora estamos na página 02&lt;br /&gt;';</strong></span>
<span style="color: #ff0000;"><strong>echo "Estamos na aula de " . $_SESSION['aula'] . "&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>echo "E agora são " . date('H:i:s', $_SESSION['hora']) . " horas";</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>Veja o resultado obtido na página:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11667 size-full" title="Sessions em PHP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/session-PHP.png" alt="Sessions em PHP" width="248" height="75" /></p>
<p>Neste exemplo, a sessão é criada logo que o usuário carrega a página 01. Porém, é muito comum que se deseje criar uma nova sessão apenas quando algum evento específico ocorrer, como o clique em um botão de formulário. No próximo exemplo vamos criar um formulário que, ao ser enviado, inicia uma sessão com dados fornecidos pelo usuário.</p>
<h3>Exemplo 02:</h3>
<p>Também trabalharemos com dois arquivos: a primeira página conterá um formulário onde o usuário deverá digitar seu nome e clicar em um botão para envio dos dados ao servidor, criando uma nova sessão, e o segundo arquivo será um script PHP que irá receber os dados enviados e exibi-los na página, após retomar a sessão.</p>
<p>Vamos aos códigos:</p>
<p>Primeiramente, o código do arquivo <em>pagina01.php</em>, que exibirá um formulário e permitirá a criação de uma sessão:</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #339966;"><strong>// Testando sessões em PHP</strong></span>
<span style="color: #ff0000;"><strong>if(isset($_REQUEST['valor']) and ($_REQUEST['valor'] == 'enviado')) { <span style="color: #339966;">// cria sessão se usuário tiver clicado no botão enviar do formulário</span></strong></span>
<span style="color: #ff0000;"><strong> session_start();</strong></span>
<span style="color: #339966;"><strong>// cria variáveis de sessão e as inicializa com os dados do formulário:</strong></span>
<span style="color: #ff0000;"><strong> $_SESSION['nome'] = $_POST['frm_nome'];</strong></span>
<span style="color: #ff0000;"><strong> $_SESSION['sobrenome'] = $_POST['frm_sobrenome'];</strong></span>
<span style="color: #339966;"><strong>// exibe link para a página 02:</strong></span>
<span style="color: #ff0000;"><strong> echo "&lt;a href='sessao2.php'&gt;Ir para página 2&lt;/a&gt;";</strong></span>
<span style="color: #ff0000;"><strong> }</strong></span>
<span style="color: #ff0000;"><strong>else { <span style="color: #339966;">// Se usuário ainda não clicou no botão de enviar, mostra o formulário na página:</span></strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;form name="form1" action="pagina01.php?valor=enviado" method="POST"&gt;</strong></span>
<span style="color: #ff0000;"><strong> Digite seu nome:</strong></span>
<span style="color: #ff0000;"><strong> &lt;input type="text" name="frm_nome"&gt;&lt;br&gt;</strong></span>
<span style="color: #ff0000;"><strong> Digite seu sobrenome:</strong></span>
<span style="color: #ff0000;"><strong> &lt;input type="text" name="frm_sobrenome"&gt;&lt;br&gt;</strong></span>
<span style="color: #ff0000;"><strong> &lt;input type="submit" value="Enviar"&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;/form&gt;</strong></span>
<span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #ff0000;"><strong> }</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>Neste exemplo, preencherei os formulário com meus dados e clicarei em Enviar:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11699 size-full" title="Sessões em PHP - formulário de envio" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/sessions-php-formulário-envio.jpg" alt="Sessões em PHP - formulário de envio" width="347" height="77" /></p>
<p>E agora o código do arquivo de destino, <em>pagina02.php</em>:</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #339966;"><strong>// retomando a sessão criada:</strong></span>
<span style="color: #ff0000;"><strong> session_start();</strong></span>
<span style="color: #339966;"><strong>// ecoando os dados gravados na sessão:</strong></span>
<span style="color: #ff0000;"><strong> echo "Os dados recebidos foram:&lt;br&gt;&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> echo "Nome: " . $_SESSION['nome'] . "&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> echo "Sobrenome: " . $_SESSION['sobrenome'];</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>Neste exemplo, usamos o array associativo $_REQUEST para verificar se o usuário enviou o formulário com os dados, lendo o valor da variável valor (se ela tiver sido criada), que é enviada como parâmetro da action do formulário.</p>
<p>Se a variável não existir, o formulário é apresentado ao usuário para preenchimento e envio.</p>
<p>Ao clicar no botão enviar, é criada uma sessão e duas variáveis de sessão são definida: nome e sobrenome, as quais são recuperadas ao acessar a página 02, clicando-se no link exibido.</p>
<p>Abaixo o resultado obtido após enviar o formulário:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11698 size-full" title="Sessions em PHP - resultado" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/sessions-resultado.jpg" alt="Sessions em PHP - resultado" width="233" height="77" /></p>
<h3>Encerrando a sessão</h3>
<p>Podemos encerrar a sessão aberta com a função <strong>session_destroy()</strong>. Esta função elimina todos os dados registrados na sessão atual.</p>
<h4>Sintaxe:</h4>
<pre><span style="color: #800080;"><strong>bool session_destroy();</strong></span></pre>
<p>Retorno da função:</p>
<ul>
<li>TRUE se a sessão é iniciada com sucesso.</li>
<li>FALSE se a sessão falha em iniciar.</li>
</ul>
<p>Vamos usar variáveis de sessão para criar um CRUD em PHP com sistema de login a partir das próximas lições.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/trabalhando-com-sessoes-em-php-e-variavel-_session/">Trabalhando com sessões em PHP e variável $_SESSION</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/trabalhando-com-sessoes-em-php-e-variavel-_session/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Ordenação de Arrays em PHP</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/ordenacao-de-arrays-em-php/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/ordenacao-de-arrays-em-php/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 13 Mar 2018 17:16:07 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=11596</guid>

					<description><![CDATA[<p>Ordenação de Arrays em PHP -Função sort A função sort é utilizada para ordenar os elementos de um array em PHP. Os elementos são ordenados do menor para o maior valor, significando do menor número para o maior, em arrays numéricos, e ordem alfabética, em arrays de strings. Esse comportamento pode ser alterado por meio de flags passadas como argumento para a função. Sintaxe: sort(array [, $sort_flags = OPÇÃO]) Parâmetros: array &#8211; Array a ser ordenado sort_flags &#8211; Parâmetro opcional que modifica o comportamento da ordenação. Seus valores possíveis são: SORT_REGULAR &#8211; comparação normal dos itens SORT_NUMERIC &#8211; comparar itens numericamente SORT_STRING &#8211; comparar itens como strings SORT_LOCALE_STRING &#8211; comparar itens como strings, baseando-se no locale atual do sistema SORT_NATURAL &#8211; comparar itens como strings usando ordem natural (a partir da versão 5.4.0). SORT_FLAG_CASE &#8211; ordenar strings sem levar em conta o caso (maiúsculas ou minúsculas), quando combinada com SORT_STRING ou SORT_NATURAL (a partir da versão 5.4.0). A função retorna o valor TRUE se a operação tiver êxito, ou FALSE se falhar. Exemplos 1 &#8211; Ordenar array em ordem alfabética: &#60;?php $frutas = array("laranja", "maçã", "banana", "caju", "melancia", "uva", "graviola"); sort($frutas); foreach ($frutas as $fruta) { echo "$fruta&#60;br&#62;"; } echo "&#60;br&#62;"; [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/ordenacao-de-arrays-em-php/">Ordenação de Arrays em PHP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Ordenação de Arrays em PHP -Função sort</h2>
<p>A função <strong>sort</strong> é utilizada para ordenar os elementos de um array em PHP. Os elementos são ordenados do menor para o maior valor, significando do menor número para o maior, em arrays numéricos, e ordem alfabética, em arrays de strings. Esse comportamento pode ser alterado por meio de flags passadas como argumento para a função.</p>
<h3>Sintaxe:</h3>
<pre><span style="color: #800080;"><strong>sort(array [, $sort_flags = OPÇÃO])</strong></span></pre>
<p>Parâmetros:</p>
<ul>
<li><strong>array</strong> &#8211; Array a ser ordenado</li>
<li><strong>sort_flags</strong> &#8211; Parâmetro opcional que modifica o comportamento da ordenação. Seus valores possíveis são:
<ul>
<li>SORT_REGULAR &#8211; comparação normal dos itens<br />
SORT_NUMERIC &#8211; comparar itens numericamente</li>
<li>SORT_STRING &#8211; comparar itens como strings</li>
<li>SORT_LOCALE_STRING &#8211; comparar itens como strings, baseando-se no locale atual do sistema</li>
<li>SORT_NATURAL &#8211; comparar itens como strings usando ordem natural (a partir da versão 5.4.0).</li>
<li>SORT_FLAG_CASE &#8211; ordenar strings sem levar em conta o caso (maiúsculas ou minúsculas), quando combinada com SORT_STRING ou SORT_NATURAL (a partir da versão 5.4.0).</li>
</ul>
</li>
</ul>
<p>A função retorna o valor TRUE se a operação tiver êxito, ou FALSE se falhar.</p>
<h3>Exemplos</h3>
<p>1 &#8211; Ordenar array em ordem alfabética:</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #ff0000;"><strong> $frutas = array("laranja", "maçã", "banana", "caju", "melancia", "uva", "graviola");</strong></span>
<span style="color: #ff0000;"><strong> sort($frutas);</strong></span>
<span style="color: #ff0000;"><strong> foreach ($frutas as $fruta) {</strong></span>
<span style="color: #ff0000;"><strong>   echo "$fruta&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> }</strong></span>
<span style="color: #ff0000;"><strong> echo "&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>2 &#8211; Ordenar o array anterior em ordem alfabética, mostrando chaves e seus respectivos valores:</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #ff0000;"><strong>foreach ($frutas as $chave =&gt; $valor) {</strong></span>
<span style="color: #ff0000;"><strong> echo "Frutas[" . $chave . "] = " . $valor . "&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>}</strong></span>
<span style="color: #ff0000;"><strong>echo "&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>3 &#8211; Ordenação reversa: função rsort():</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php
</strong><strong> $frutas = array("laranja", "maçã", "banana", "caju", "melancia", "uva", "graviola");</strong></span></pre>
<pre><span style="color: #ff0000;"><strong> rsort($frutas);</strong></span>
<span style="color: #ff0000;"><strong> foreach ($frutas as $fruta) {</strong></span>
<span style="color: #ff0000;"><strong> echo "$fruta&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> }</strong></span>
<span style="color: #ff0000;"><strong> echo "&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>4 &#8211; Um cuidado especial deve ser tomado quando os itens do array são tratados como strings. Vejamos um exemplo que mostra a diferença entre a comparação como strings e a ordem natural de ordenação do PHP. Suponha um array que contenha os itens a seguir (strings):</p>
<p><strong>{ 2 12 23 11 6 5 18 24 29 1 3 31 17 }</strong></p>
<p>Vamos ordenar esse array usando a ordem por string (flag  <strong>SORT_STRING</strong>) e depois combinando-a com a flag de ordem natural (<strong>SORT_NATURAL</strong>):</p>
<pre><span style="color: #ff0000;"><strong>&lt;?php
</strong><strong> $numeros = array(2, 12, 23, 11, 6, 5, 18, 24, 29, 1, 3, 31, 17);</strong></span></pre>
<pre><span style="color: #ff0000;"><strong> sort($numeros, SORT_STRING);
</strong> <strong>echo "Como strings -&gt; SORT_STRING:&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> foreach ($numeros as $num) {</strong></span>
<span style="color: #ff0000;"><strong>   echo "$num&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> }</strong></span>
<span style="color: #ff0000;"><strong> echo "&lt;br&gt;";
</strong></span></pre>
<pre><span style="color: #ff0000;"><strong> echo "Ordem natural -&gt; SORT_NATURAL:&lt;br&gt;";
 sort($numeros, SORT_NATURAL);</strong></span>
<span style="color: #ff0000;"><strong> foreach ($numeros as $num) {</strong></span>
<span style="color: #ff0000;"><strong>   echo "$num&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> }</strong></span>
<span style="color: #ff0000;"><strong> echo "&lt;br&gt;";
</strong></span><span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>Podemos ver a saída do script na figura a abaixo. Note a diferença na ordenação dos elementos do array:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11612 size-full" title="Ordenar arrays em PHP - comando sort" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/sort-arrays-PHP.png" alt="Ordenar arrays em PHP - comando sort" width="267" height="535" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/sort-arrays-PHP.png 267w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/sort-arrays-PHP-210x420.png 210w" sizes="auto, (max-width: 267px) 100vw, 267px" /></p>
<p>A ordem natural nos retorna os valores em ordem numérica. Já a ordem como string retorna os valores em ordem alfanumérica, como por exemplo gerenciadores de arquivos mostram os nomes de arquivos.</p>
<p>Próximo: <a href="http://www.bosontreinamentos.com.br/php-programming/curso-de-php-introducao-as-funcoes-em-php/">Introdução às Funções em PHP</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/ordenacao-de-arrays-em-php/">Ordenação de Arrays em PHP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/ordenacao-de-arrays-em-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Constantes em PHP</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/constantes-em-php/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/constantes-em-php/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Wed, 07 Mar 2018 17:06:45 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=11531</guid>

					<description><![CDATA[<p>Constantes em PHP Uma Constante é um valor que pode ser armazenado sob um nome, de forma parecida com uma variável, porém com uma diferença fundamental: esse valor não pode ser alterado após a constante ser definida e atribuída. Desta forma, o valor armazenado pode ser utilizado no script sempre que a constante for empregada, sem o risco de ter esse valor alterado inadvertidamente. Uma constante é muito útil para armazenar valores que nunca devem ser alterados, como constantes matemáticas (Pi, por exemplo) e strings de conexão a bancos de dados, entre outros. O escopo de uma constante é global. Criamos constantes nomeadas em PHP com o uso da função define(). Sintaxe: define(nome_constante, valor_constante[, ignora_caso]); Onde: nome_constante é o nome que queremos dar à constante valor_constante é o valor que será armazenado na constante. OS tipos de dados aceitos são integer, string, float e boolean, ou ainda o valor NULL. No PHP também são aceitos arrays. ignora_caso é um flag que ativa ou desativa a verificação de maiúsculos e minúsculos no nome da constante. O nome da constante não se inicia com o caractere $, de forma diferente das variáveis. O valor padrão para [ignora-caso] é FALSE, ou seja, o caso não [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/constantes-em-php/">Constantes em PHP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Constantes em PHP</h2>
<p>Uma Constante é um valor que pode ser armazenado sob um nome, de forma parecida com uma variável, porém com uma diferença fundamental: esse valor não pode ser alterado após a constante ser definida e atribuída.</p>
<p>Desta forma, o valor armazenado pode ser utilizado no script sempre que a constante for empregada, sem o risco de ter esse valor alterado inadvertidamente.</p>
<p>Uma constante é muito útil para armazenar valores que nunca devem ser alterados, como constantes matemáticas (Pi, por exemplo) e strings de conexão a bancos de dados, entre outros. O escopo de uma constante é global.</p>
<p>Criamos constantes nomeadas em PHP com o uso da função <strong>define()</strong>.</p>
<h3>Sintaxe:</h3>
<pre><span style="color: #800080;"><strong>define(nome_constante, valor_constante[, ignora_caso]);</strong></span></pre>
<p>Onde:</p>
<ul>
<li><strong>nome_constante</strong> é o nome que queremos dar à constante</li>
<li><strong>valor_constante</strong> é o valor que será armazenado na constante. OS tipos de dados aceitos são integer, string, float e boolean, ou ainda o valor NULL. No PHP também são aceitos arrays.</li>
<li><strong>ignora_caso</strong> é um flag que ativa ou desativa a verificação de maiúsculos e minúsculos no nome da constante.</li>
</ul>
<p>O nome da constante não se inicia com o caractere <strong>$</strong>, de forma diferente das variáveis.</p>
<p>O valor padrão para <em>[ignora-caso]</em> é FALSE, ou seja, o caso não é ignorado &#8211; maiúsculas e minúsculas no nome da constante são diferenciadas.<br />
 Alterando seu valor para TRUE não será feita diferenciação entre maiúsculas e minúsculas no nome da constante.</p>
<h4>Exemplo:</h4>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #ff0000;"><strong> define("constante1", "Bóson");</strong></span>
<span style="color: #ff0000;"><strong> define("constante2", "Próton", TRUE);</strong></span>
<span style="color: #ff0000;"><strong> define("constante3", 35);</strong></span>
<span style="color: #ff0000;"><strong> echo constante1."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> echo Constante1."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> echo constante2."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> echo CONSTANTE2."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong> echo constante3."&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>Note que é gerado um erro ao tentar mostrar o conteúdo da constante 1 quando ela é referenciada como Constante1, com o primeiro caractere em maiúscula. Já a constante2, mesmo em maiúsculas, não gera esse erro, pois o parâmetro ignora_caso foi definido como TRUE para ela:</p>
<p><a href="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro-nome.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-11534 size-full" title="Erro em constantes de nome diferente no PHP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro-nome.png" alt="Erro em constantes de nome diferente no PHP" width="1017" height="124" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro-nome.png 1017w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro-nome-420x51.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro-nome-768x94.png 768w" sizes="auto, (max-width: 1017px) 100vw, 1017px" /></a></p>
<p>Após uma constante ser definida, seu valor não pode ser alterado durante a execução do script. Qualquer tentativa de escrever um valor diferente em uma constante já definida resultará em erro na execução do script, como é possível constatar acrescentando as seguintes instruções ao script anterior:</p>
<pre><span style="color: #ff0000;"><strong>constante3 = 20;</strong></span>
<span style="color: #ff0000;"><strong>echo constante3."&lt;br&gt;";</strong></span></pre>
<p>Será gerado o erro a seguir, mostrando que a atribuição (=) não é possível a uma constante após ter sido criada:</p>
<div id="attachment_11532" style="width: 868px" class="wp-caption aligncenter"><a href="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11532" class="wp-image-11532 size-full" title="Erro em atribuição de constantes no PHP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro.png" alt="Erro em atribuição de constantes no PHP" width="858" height="60" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro.png 858w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro-420x29.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/constantes-PHP-erro-768x54.png 768w" sizes="auto, (max-width: 858px) 100vw, 858px" /></a><p id="caption-attachment-11532" class="wp-caption-text">Erro ao tentar atribuir valor a uma constante no PHP. Clique na imagem para ampliá-la.</p></div>
<h3>Constantes e Arrays</h3>
<p>Também podemos criar uma constante do tipo array, a partir do PHP 7. Veja abaixo um exemplo:</p>
<pre><span style="color: #ff0000;"><strong>define('LINGUAGENS', array(</strong></span><span style="color: #ff0000;"><strong>'C',</strong></span><span style="color: #ff0000;"><strong>'Java',</strong></span><span style="color: #ff0000;"><strong>'PHP',</strong></span><span style="color: #ff0000;"><strong>'Haskell'</strong></span><span style="color: #ff0000;"><strong>));</strong></span>
<span style="color: #ff0000;"><strong>echo LINGUAGENS[1]; <span style="color: #339966;">// Saída: "Java"</span></strong></span></pre>
<p>Próximo: <a href="http://www.bosontreinamentos.com.br/php-programming/curso-de-php-operadores-aritmeticos-e-de-atribuicao-de-valores/">Operadores aritméticos e de atribuição de variáveis em PHP</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/constantes-em-php/">Constantes em PHP</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/constantes-em-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Curso de PHP &#8211; Funções para manipulação de strings &#8211; parte 01</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-funcoes-para-manipulacao-de-strings-parte-01/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-funcoes-para-manipulacao-de-strings-parte-01/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 18 Aug 2017 18:12:43 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=9575</guid>

					<description><![CDATA[<p>Funções para manipulação de strings em PHP &#8211; 01 A manipulação de strings é uma das tarefas mais importantes e comuns realizadas em um programa. Tarefas como dividir as strings, capitalizá-las, procurar caracteres específicos e outras são de extrema importância no desenvolvimento de aplicativos, e a linguagem PHP possui inúmeras funções prontas para manipulação de texto, que facilitam em muito a vida do programador. Este artigo, em duas partes, irá apresentar algumas dessas funções, que são essenciais na &#8220;caixa de ferramentas&#8221; do desenvolvedor na linguagem. Vamos às funções: chunk_split() Essa função divide uma string passada como parâmetro em diversas partes de tamanho definido na própria função, separando cada parte com um separador também passado á função (o padrão é o separador \n\r) Sintaxe: string chunk_split(string, separador, tamanho) chr() Retorna o caractere ASCII que corresponda ao valor passado como argumento, sendo válidos valores entre 0 e 255. Sintaxe: string chr(valor) ord() Retorna o código ASCII (valor inteiro) que corresponda a um caractere passado como argumento Sintaxe: integer ord(caractere) explode() Retorna um array que contém cada elemento de uma parte de uma string passada como parâmetro. As partes são determinadas de acordo com um separador, também passado à função. Um terceiro parâmetro, o [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/curso-de-php-funcoes-para-manipulacao-de-strings-parte-01/">Curso de PHP &#8211; Funções para manipulação de strings &#8211; parte 01</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Funções para manipulação de strings em PHP &#8211; 01</h2>
<p>A manipulação de strings é uma das tarefas mais importantes e comuns realizadas em um programa. Tarefas como dividir as strings, capitalizá-las, procurar caracteres específicos e outras são de extrema importância no desenvolvimento de aplicativos, e a linguagem PHP possui inúmeras funções prontas para manipulação de texto, que facilitam em muito a vida do programador.</p>
<p>Este artigo, em duas partes, irá apresentar algumas dessas funções, que são essenciais na &#8220;<em>caixa de ferramentas</em>&#8221; do desenvolvedor na linguagem.</p>
<p>Vamos às funções:</p>
<h3>chunk_split()</h3>
<p>Essa função divide uma string passada como parâmetro em diversas partes de tamanho definido na própria função, separando cada parte com um separador também passado á função (o padrão é o separador \n\r)</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string chunk_split(string, separador, tamanho)</strong></span></pre>
<h3>chr()</h3>
<p>Retorna o caractere ASCII que corresponda ao valor passado como argumento, sendo válidos valores entre 0 e 255.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string chr(valor)</strong></span></pre>
<h3>ord()</h3>
<p>Retorna o código ASCII (valor inteiro) que corresponda a um caractere passado como argumento</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>integer ord(caractere)</strong></span></pre>
<h3>explode()</h3>
<p>Retorna um array que contém cada elemento de uma parte de uma string passada como parâmetro. As partes são determinadas de acordo com um separador, também passado à função.</p>
<p>Um terceiro parâmetro, o limite, é opcional, e diz à função quantos elementos no máximo o array retornará.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>array explode(separador, string, limite)</strong></span></pre>
<h3>implode()</h3>
<p>Essa função retorna uma string que representa todos os elementos de um array passado como argumento, separando cada elemento com um caractere separador informado (ou seja, é o inverso da função explode()).</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string implode(separador, array)</strong></span></pre>
<h3>ltrim()</h3>
<p>A função ltrim elimina espaços em branco no início de uma string.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string ltrim(string, caracteres)</strong></span></pre>
<p>O parâmetro <em>caracteres</em> é opcional, e permite indicar um conjunto diferente de caracteres a serem eliminados do início da string (o padrão são espaços em branco).</p>
<h3>rtrim()</h3>
<p>A função rtrim elimina espaços em branco no final de uma string.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string rtrim(string, caracteres)</strong></span></pre>
<p>O parâmetro <em>caracteres</em> é opcional, e permite indicar um conjunto diferente de caracteres a serem eliminados do final da string (o padrão são espaços em branco).</p>
<h3>trim()</h3>
<p>A função trim elimina espaços em branco no início e no final de uma string (tanto à esquerda quanto à direita). Equivale a executar ltrim e rtrim juntas.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string rtrim(string, caracteres)</strong></span></pre>
<p>O parâmetro <em>caracteres</em> é opcional, e permite indicar um conjunto diferente de caracteres a serem eliminados do início e final da string (o padrão são espaços em branco).</p>
<h3>number_format()</h3>
<p>Com a função number_format() podemos formatar um número para que sejam exibidos um separador de milhar e um separador decimal desejado.</p>
<p>As sintaxes da função são:</p>
<pre><span style="color: #800080;"><strong>string number_format(número)</strong></span></pre>
<p>Neste caso, o número será retornado como uma string formatada com um separador de milhar, definido pelo ambiente operacional, e sem as casas decimais, pois o número será truncado.</p>
<pre><span style="color: #800080;"><strong>string number_format(número, decimais)</strong></span></pre>
<p>Nesta segunda forma, o número será formatado com a quantidade de casas decimais definidas no parâmetro <strong><em>decimais</em></strong>.</p>
<pre><span style="color: #800080;"><strong>string number_format(número, decimais, separador_decimal, separador_milhar)</strong></span></pre>
<p>Nesta última forma, o número será retornado como uma string contendo a quantidade de casas decimais informada, além do separador de milhar e de decimais informado.</p>
<h3>str_pad()</h3>
<p>Esta função permite completar uma string, até um tamanho especificado, usando outra string. O complemento pode ser realizado à esquerda, à direita ou ainda em ambos os lados.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string str_pad(texto, tamanho, complemento, tipo)</strong></span></pre>
<p>Onde:</p>
<ul>
<li>texto é a string de texto a ser complementada</li>
<li>tamanho é o tamanho final da string com os caracteres de complemento.</li>
<li>complemento é um argumento opcional, e se não for informado, serão usados espaços em branco.</li>
<li>tipo também é opcional, podendo ser:
<ul>
<li>STR_PAD_RIGHT &#8211; complemento à direita (é o padrão, caso o tipo não seja informado)</li>
<li>STR_PAD_LEFT &#8211; complemento à esquerda</li>
<li>STR_PAD_BOTH &#8211; complemento nos dois lados</li>
</ul>
</li>
</ul>
<h3>str_repeat()</h3>
<p>A função str_repeat() retorna uma string especificada um número específico de vezes.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string str_repeat(texto, num_rep)</strong></span></pre>
<p>Texto é a string a ser repetida, e num_rep é o número de vezes que essa string deve ser repetida.</p>
<h3>str_ireplace()</h3>
<p>Esta função realiza a busca e substituição de um texto por outro texto dentro da string informada. </p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string str_ireplace(texto_a_procurar, texto_substituto, texto_principal, num_trocas)</strong></span></pre>
<p>Onde:</p>
<ul>
<li>texto_a_procurar</li>
<li>texto_substituto</li>
<li>texto_principal</li>
<li>num_trocas</li>
</ul>
<p>Essa função não é case sensitive, ou seja, não diferencia maiúsculas de minúsculas. Caso você precise de uma função para busca e substituição de textos que seja case sensitive, use a função str_replace(), cuja sintaxe é a mesma de str_ireplace().</p>
<p>Próximo: Funções para manipulação de strings &#8211; parte 02</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/curso-de-php-funcoes-para-manipulacao-de-strings-parte-01/">Curso de PHP &#8211; Funções para manipulação de strings &#8211; parte 01</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/curso-de-php-funcoes-para-manipulacao-de-strings-parte-01/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Armazenando senhas de forma segura em PHP &#8211; funções de hash</title>
		<link>https://www.bosontreinamentos.com.br/php-programming/armazenando-senhas-de-forma-segura-em-php-funcoes-de-hash/</link>
					<comments>https://www.bosontreinamentos.com.br/php-programming/armazenando-senhas-de-forma-segura-em-php-funcoes-de-hash/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Wed, 05 Jul 2017 12:12:40 +0000</pubDate>
				<category><![CDATA[Programação em PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Segurança]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=9785</guid>

					<description><![CDATA[<p>Como armazenar senhas de forma segura em PHP com funções de hash Uma das tarefas mais importantes na criação de uma aplicação Web é oa autenticação e controle de acesso dos usuários. A forma mais comum de se realizar controle de acesso é por meio de um par nome de usuário / senha, que devem ser armazenados de alguma forma em um banco de dados, para que seja possível verificar as credenciais do usuário no momento de login no sistema. Mas como armazenar essas informações de forma segura, principalmente senhas?  Nesta lição vamos mostrar como armazenar senhas em um banco de dados de forma segura, usando funções de criptografia em PHP. Hashes Um hash é um valor matemático computado sobre um texto plano, como uma senha, usando algoritmos específicos. As funções de Hash são usadas para verificar a integridade dos dados para garantir que não tenham sido inadvertidamente alterados, como por exemplo, verificações de senhas.  Existem vários algoritmos de hash que podem ser empregados para esse fim, e no PHP vamos usar a função criptográfica bcrypt, que é baseada na cifra Blowfish, e implementada por meio da função &#8220;password_hash()&#8220;. Acrescentando Salt Em criptografia, chamamos de salt a um dado aleatório que é usado como uma entrada [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/armazenando-senhas-de-forma-segura-em-php-funcoes-de-hash/">Armazenando senhas de forma segura em PHP &#8211; funções de hash</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como armazenar senhas de forma segura em PHP com funções de hash</h2>
<p>Uma das tarefas mais importantes na criação de uma aplicação Web é oa autenticação e controle de acesso dos usuários. A forma mais comum de se realizar controle de acesso é por meio de um par nome de usuário / senha, que devem ser armazenados de alguma forma em um banco de dados, para que seja possível verificar as credenciais do usuário no momento de login no sistema.</p>
<p>Mas como armazenar essas informações de forma segura, principalmente senhas? </p>
<p>Nesta lição vamos mostrar como armazenar senhas em um banco de dados de forma segura, usando funções de criptografia em PHP.</p>
<h3>Hashes</h3>
<p><a href="http://www.bosontreinamentos.com.br/seguranca/criptografia-tipos-simetrica-assimetrica-e-funcoes-de-hash-02/">Um hash</a> é um valor matemático computado sobre um texto plano, como uma senha, usando algoritmos específicos.</p>
<p>As funções de Hash são usadas para verificar a integridade dos dados para garantir que não tenham sido inadvertidamente alterados, como por exemplo, verificações de senhas. </p>
<p>Existem vários algoritmos de hash que podem ser empregados para esse fim, e no PHP vamos usar a função criptográfica <strong>bcrypt</strong>, que é baseada na cifra <strong>Blowfish</strong>, e implementada por meio da função &#8220;<strong>password_hash()</strong>&#8220;.</p>
<h3>Acrescentando Salt</h3>
<p>Em criptografia, chamamos de salt a um dado aleatório que é usado como uma entrada adicional para uma função que efetua o hash de uma senha. São caracteres aleatórios acrescentados à senha antes de ela ser hasheada. A principal função dos salts é defender a senha armazenada contra ataques de dicionário ou contra ataque de hashes pré-calculados, realizados por meio do uso de <a href="https://www.youtube.com/watch?v=G0aemrKG9PM" target="_blank" rel="noopener noreferrer">rainbow tables</a>.</p>
<h3>Função password_hash()</h3>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>string password_hash ( string $senha , integer $algoritmo, array $opções )</strong></span></pre>
<p>Onde:</p>
<ul>
<li><strong>$senha</strong> é a senha fornecida que deve ser hasheada.</li>
<li><strong>$algoritmo</strong> é o algoritmo de hash que deve ser utilizado no processo. Os algoritmos suportados são:
<ul>
<li>PASSWORD_DEFAULT &#8211; algoritmo bcrypt. Se usado, recomenda-se armazenar o resultado do hash em um campo que permite até 255 caracteres, por questões de boas práticas.</li>
<li>PASSWORD_BCRYPT &#8211; Usa o algoritmo CRYPT_BLOWFISH para criar o hash, resultando em uma string de exatos 60 caracteres.</li>
<li>PASSWORD_ARGON2I &#8211; Utiliza o algoritmo Argon2 para a criação do hash.</li>
</ul>
</li>
<li><strong>$opções</strong> é um array associativo que indica configurações especiais para a função. Estão disponíveis as duas funções a seguir:
<ul>
<li>salt &#8211; permite fornecer manualmente um valor de salt à função &#8211; por padrão, o salt é gerado automaticamente, de forma aleatória. É recomendado não gerar o salt manualmente. Note que esta opção foi deprecada no PHP 7.0.</li>
<li>cost &#8211; indica o custo algorítmico que deve ser utilizado. Por padrão, é usado o valor 10.</li>
</ul>
</li>
</ul>
<p>A função retorna uma string contendo o hash da senha, ou o valor <strong>FALSE</strong> se algo der errado. Tanto o custo quanto o salt são retornados como parte do próprio hash, de modo que não precisam ser armazenados separadamente.</p>
<h4>Exemplo:</h4>
<p>Suponhamos que seja necessário efetuar a <strong>gravação</strong> da senha de um usuário a partir de uma tela de cadastro, para que posteriormente seja comparada à senha fornecida no momento de login quando o usuário for tentar se logar no sistema.</p>
<p>A senha escolhida pelo usuário é enviada ao script de processamento por meio do método POST, e seu hash é gerado da seguinte maneira:</p>
<pre><span style="color: #ff0000;"><strong>$hashsenha = trim(password_hash($_POST['senha'], PASSWORD_DEFAULT));</strong></span></pre>
<p>onde &#8216;<strong>senha</strong>&#8216; é o nome do campo de origem do valor da senha na página de cadastro, e <strong>$hashsenha</strong> é a variável que irá conter o hash da senha criado, o qual deverá então ser armazenado no banco de dados juntamente com os demais dados de login necessários.</p>
<p>A função <a href="http://www.bosontreinamentos.com.br/php-programming/curso-de-php-funcoes-para-manipulacao-de-strings-parte-01/" target="_blank" rel="noopener noreferrer">trim()</a> é usada para eliminar eventuais espaços em branco no início e no final da string gerada.</p>
<h3>Função password_verify()</h3>
<p>Essa função verifica se uma senha fornecida confere com um hash armazenado.</p>
<p>Sintaxe:</p>
<pre><span style="color: #800080;"><strong>boolean password_verify(string $senha, string $hash_da_senha)</strong></span></pre>
<p>onde:</p>
<ul>
<li><strong>$senha</strong> é a senha fornecida pelo usuário</li>
<li><strong>$hash_da_senha</strong> é o hash da senha do usuário, criado com a função password_verify(), que está armazenado em algum lugar, como um banco de dados.</li>
</ul>
<p>A função retorna <strong>TRUE</strong> se a senha conferir com o hash, ou <strong>FALSE</strong> em caso contrário.</p>
<h3>Código de exemplo</h3>
<pre><span style="color: #ff0000;"><strong>&lt;?php</strong></span>
<span style="color: #ff0000;"><strong> echo "Criando hash de senha com salt e testando:&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>$hashSenha = password_hash('123', PASSWORD_DEFAULT);</strong></span>
<span style="color: #ff0000;"><strong>if (password_verify('123', $hashSenha)) {</strong></span>
<span style="color: #ff0000;"><strong>  echo "Senha correta&lt;br&gt;";</strong></span>
<span style="color: #ff0000;"><strong>  echo "O Hash da senha é " . $hashSenha;</strong></span>
<span style="color: #ff0000;"><strong>}</strong></span>
<span style="color: #ff0000;"><strong>else {</strong></span>
<span style="color: #ff0000;"><strong>  echo "Senha incorreta!";</strong></span>
<span style="color: #ff0000;"><strong>}</strong></span>
<span style="color: #ff0000;"><strong>?&gt;</strong></span></pre>
<p>No código de exemplo acima, criamos um hash para a senha fornecida, que no caso é a senha &#8220;<em><strong>123</strong></em>&#8220;, usando as configurações padrão da função <strong>password_hash()</strong>. </p>
<p>Esse hash é armazenado na variável <strong>$hashSenha</strong>. Logo após, temos um mecanismo para realizar a verificação da senha, usando a função <strong>password_verify()</strong>.</p>
<p>Passamos para essa função a senha &#8220;<em><strong>123</strong></em>&#8221; (para verificação) e a variável que contém o hash da senha correta. Caso a senha passada coincida com a senha correta, serão exibidas as mensagens &#8220;Senha correta&#8221; e &#8220;O hash da senha é [hash]&#8221;. Caso contrário, será exibida a mensagem de erro &#8220;Senha incorreta!&#8221;.</p>
<p>Você pode testar o algoritmo usando a senha correta e também passando uma senha errada, para verificar as mensagens exibidas.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/php-programming/armazenando-senhas-de-forma-segura-em-php-funcoes-de-hash/">Armazenando senhas de forma segura em PHP &#8211; funções de hash</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/php-programming/armazenando-senhas-de-forma-segura-em-php-funcoes-de-hash/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
