# Como começar a usar o PHP - um tutorial para iniciantes

[PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/o-que-e-php/) é uma das linguagens de programação mais comuns para **programação no lado do servidor**. Com o tempo, ele se tornou parte integrante dos sites contemporâneos e das tecnologias da Internet. No entanto, dominar o PHP pode ser difícil para os novatos. Neste tutorial de PHP, mostraremos os conceitos básicos da popular linguagem de programação e seus mais importantes [operadores](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/operadores-php/), loops e funções.

## O que você precisa ter antes de iniciar o tutorial de PHP

Nosso tutorial é voltado principalmente para iniciantes. No entanto, ter um conhecimento básico de desenvolvimento moderno da Web e HTML pode ser útil. Para acompanhar e reproduzir os exemplos em seu próprio computador, certifique-se de ter preparado o seguinte:

- Servidor da Web, incluindo **Interpretador PHP**
- PHP instalado
- Navegador da Web
- Editor de texto

Como servidor, recomendamos o [ambiente de teste local XAMPP](https://www.apachefriends.org/index.html "Página de download do Apache XAMPP"), que a Apache Friends fornece gratuitamente para os sistemas operacionais Windows, Linux e macOS. **O XAMPP é um servidor de teste puro.** Os desenvolvedores da Web podem usar o software para configurar ambientes de teste para scripts, páginas HTML e folhas de estilo com facilidade. Entretanto, a operação segura do servidor da Web na Internet não é garantida. Instruções detalhadas de instalação podem ser encontradas em nosso Tutorial do XAMPP.

## Qual é a sintaxe do PHP?

Depois de configurar seu servidor da Web local (, por exemplo, usando o XAMPP), é uma boa ideia testar se o PHP foi instalado corretamente e se está pronto para executar scripts. Um *script* é um programa que não é compilado em código binário. Em vez disso, eles são executados por um *interpretador*. Abra seu editor de texto preferido \*\*\*\* e aplique o seguinte script PHP:

```php
<?php
phpinfo();
?>
```

[![Imagem: Código PHP no editor de texto](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/0/2/csm_simple-php-code-in-notepad-plus-plus_c57f5d036c.webp "Código PHP no editor de texto")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/simple-php-code-in-notepad-plus-plus.png) Um editor de texto como o Notepad++ suporta programação com realce de sintaxe. Os scripts PHP seguem uma estrutura específica. A tag PHP de abertura `<?php` inicia um**ambiente de script**. Isso é seguido pelo código PHP real na forma de instruções. No exemplo acima, essa é a chamada para a função*phpinfo()*. A maioria das funções PHP exige um ou mais parâmetros, que são colocados entre parênteses. For*phpinfo()*, esses parâmetros são opcionais:*phpinfo(INFO\_ALL)*. Cada instrução termina com um ponto e vírgula (*;*). Para concluir o script, use a tag PHP de fechamento:\* ?&gt;.

Definição As funções são sub-rotinas que possibilitam a terceirização de partes do código do programa. Para evitar a repetição, as tarefas recorrentes podem ser definidas uma vez como uma função e depois chamadas usando um nome de função. Os desenvolvedores da Web usam funções PHP predefinidas para essa finalidade ou criam suas próprias sub-rotinas.

Salve o arquivo de texto com o nome *test* no formato *.php* (PHP script) e inicie seu servidor da Web. Se estiver usando o ambiente de teste XAMPP, salve *test.php* no diretório XAMPP em *htdocs* (*C:\\xampp\\htdocs*).

Você pode acessar o arquivo de amostra por meio do seguinte URL no navegador da Web: `http://localhost/test.php`. Se você usar um servidor da Web alternativo ou uma configuração individual do software XAMPP, **selecione o URL de acordo com o respectivo caminho do arquivo**.

Ao digitar o URL `http://localhost/test.php`, você solicita que o navegador da Web solicite o arquivo *test.php* do servidor da Web. O [Apache HTTP Server](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-o-apache/) (ou qualquer tipo de software de servidor da Web que você esteja usando) recupera o arquivo no diretório apropriado. A extensão *.php* significa que o arquivo contém código PHP. Nesse ponto, o interpretador PHP integrado ao servidor da Web se torna ativo. Ele processa o documento, encontrando a tag PHP de abertura `<?php`, que sinaliza o início do código PHP. O interpretador executa o código PHP, gerando uma saída HTML que o servidor da Web transmite ao navegador da Web para exibição. Se o PHP tiver sido instalado corretamente, a **execução do script** resultará na seguinte página da Web:

[![Imagem: The PHP function phpinfo()](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/a/f/csm_localhost-phpinfo-test-php_b81cb56800.webp "The PHP function phpinfo()")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/localhost-phpinfo-test-php.png) Quando um script é executado usando a função phpinfo() , o navegador exibe informações sobre a configuração do PHP. The *phpinfo()* function é uma abreviação da função padrão *phpinfo( INFO\_ALL )*. Isso gera informações detalhadas sobre a configuração do PHP de seu servidor da Web. Se nenhuma versão do PHP for encontrada, o navegador da Web exibirá uma mensagem de erro ou fornecerá o código PHP ao navegador sem interpretá-lo.

### “Hello World!” - Como gerar texto por meio de echo

Depois de instalar o PHP com sucesso, é hora de escrever seu primeiro script. Você pode usar o PHP echo para fazer isso. Ao contrário de *phpinfo()*, *echo* não é uma função. Em vez disso, é uma construção de linguagem que permite que uma cadeia de caracteres subsequente seja exibida como texto.

Definição As construções de linguagem são declarações usadas no PHP para controlar o fluxo do programa. Além de *echo*, [language constructs](https://www.php.net/manual/pt_BR/reserved.keywords.php "PHP language constructs") incluem declarações como *if, for, do, include, return, exit* ou *the*. Ao contrário das funções, não são necessários parênteses.

Para seu primeiro script personalizado, crie um novo arquivo PHP e insira o seguinte código:

```php
<?php
echo 'Hello World!';
?>
```

A tag de abertura `<?php` inicia um ambiente de script. Ela é seguida pela construção de linguagem *echo* e pela string *Hello World!*, que está entre **aspas simples**. Use a tag `?>` para encerrar o script. Observe o ponto e vírgula após a declaração. Qualquer texto pode ser usado no lugar de *Hello World!*.

Salve o script como *hello.php* dentro do diretório *htdocs* do seu servidor da Web. Em seguida, acesse o arquivo usando o URL `http://localhost/hello.php` no navegador da Web. Se o código tiver sido transferido com precisão, a janela do navegador deverá exibir a cadeia de caracteres que você usou:

[![Imagem: Saída de texto com a construção de linguagem echo](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/4/b/csm_hello-php-language-construct-echo_37af8d3c80.webp "Saída de texto com a construção de linguagem echo")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/hello-php-language-construct-echo.png) A construção de linguagem echo instrui o servidor da Web a emitir a string Hello World! Qualquer texto que você gere com *echo* pode incorporar **tags HTML**, conforme necessário. Essas tags serão interpretadas pelo navegador da Web de acordo com as especificações HTML. Faça experiências com esse conceito usando o seguinte script, por exemplo:

```php
<?php
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>
```

Quando chamado no navegador da Web, o **resultado da execução do script** é exibido da seguinte forma.

[![Imagem: Resultado da execução do script com tags HTML](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/b/3/csm_script-execution-result-html-tags-hello-world_11df6fd4d2.webp "Resultado da execução do script com tags HTML")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/script-execution-result-html-tags-hello-world.png) Se o resultado da execução do script contiver tags HTML, elas serão automaticamente interpretadas pelo navegador da Web. O texto *Hello World!*, que está contido em `<h1>` tags, é interpretado pelo navegador da Web como um título principal. Isso é sucedido por uma quebra automática de linha e pelo parágrafo de texto entre as `<p>` tags.

Dependendo de suas necessidades, você pode usar *echo* com **aspas simples (*’*) ou aspas duplas (*“*)**. Se estiver produzindo apenas texto, a escolha das aspas não importa. Entretanto, essa distinção se torna significativa ao lidar com [variáveis PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/variavel-php/).

### Variáveis

A construção de linguagem *echo* oferece mais do que apenas a exibição de texto. Embora a apresentação de texto já possa ser realizada com eficiência usando HTML. A verdadeira vantagem de usar a construção da linguagem PHP *echo* está em sua capacidade de produzir texto dinamicamente usando variáveis \*\*.

Os usuários de PHP frequentemente encontram variáveis no seguinte formato: `$example`

Cada variável consiste em um **sinal de dólar (*$*) seguido pelo nome da variável**. As variáveis são utilizadas nos scripts PHP para incorporar dados externos às páginas da Web. Elas podem abranger diversos tipos de valores, desde números básicos e cadeias de caracteres até textos completos ou estruturas de documentos HTML. O PHP faz distinção entre sete tipos diferentes de variáveis:

<table>
  <thead>
    <tr>
      <th><strong>Tipo de variável</strong></th>
      <th><strong>Description</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>String</td>
      <td>Uma string é uma sequência de caracteres. Ela pode representar uma palavra, uma frase, um trecho de texto ou até mesmo o código HTML inteiro de uma página da Web.</td>
    </tr>
    <tr>
      <td>Integer</td>
      <td>Um número inteiro é um número inteiro sem casas decimais. Pode ser positivo ou negativo.</td>
    </tr>
    <tr>
      <td>Float</td>
      <td>Um float é um número de ponto flutuante. Trata-se de um valor numérico com casas decimais. O PHP suporta até 14 dígitos após o ponto decimal.</td>
    </tr>
    <tr>
      <td>Boolean</td>
      <td>Variáveis booleanas são o resultado de uma operação lógica e conhecem apenas dois valores: *TRUE* (true) and *FALSE* (false). Esse tipo de variável é usado ao trabalhar com condições.</td>
    </tr>
    <tr>
      <td>Array</td>
      <td>Um array é uma variável que pode conter vários elementos. É um agrupamento de vários dados estruturados de forma semelhante que foram combinados em uma matriz.</td>
    </tr>
    <tr>
      <td>Objeto</td>
      <td>O tipo de variável *objeto* permite que os programadores definam seus próprios tipos de dados. Ele é usado na programação orientada a objetos. Incluímos *object* variáveis neste tutorial de PHP.</td>
    </tr>
    <tr>
      <td>NULL</td>
      <td>O valor NULL representa uma variável sem valor. Para variáveis desse tipo, NULL é o único valor possível.</td>
    </tr>
  </tbody>
</table>

A centralização de conteúdo é normalmente gerenciada por meio de sistemas de banco de dados. No entanto, os valores das variáveis também podem ser atribuídos diretamente no script. Esse tipo de atribuição usa o seguinte padrão:

```php
$example = "value";
```

O cifrão é sucedido pelo nome da variável (nesse caso *exemplo*). Ele é vinculado pelo sinal de **igual (*=*)** com um valor entre aspas duplas. Os valores de variáveis dos tipos inteiro e float são escritos sem aspas (por exemplo, *$example = 24;*e*$example = 2.7;*).

O PHP oferece flexibilidade ao nomear variáveis. Entretanto, algumas restrições se aplicam:

- Cada variável começa com um cifrão.
- Um nome de variável é qualquer sequência de letras, números e sublinhados (Por exemplo, *$example\_1*).
- Um nome de variável válido sempre começa com uma letra ou um sublinhado (*$example1* ou *$\_example*), nunca com um dígito (wrong: *$1example*).
- O PHP é *sensível a maiúsculas e minúsculas*. A linguagem de script faz distinção entre maiúsculas e minúsculas (*$example ≠ $Example*).
- O nome da variável não deve conter espaços ou quebras de linha (wrong: *$example 1*).
- Strings reservadas pelo PHP para outros propósitos não podem ser usadas como variáveis definidas pelo usuário (por exemplo, *$this*)

Vamos ilustrar isso com um exemplo:

```php
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author.</p>";
?>
```

A tag PHP de abertura é seguida pela **definição da variável**. Nesse caso, *$author* recebe o valor *John Doe*. Após a execução do script, cada instância da variável *$author* dentro do script é substituída pelo valor *John Doe* no ambiente do script. Uma representação visual desse processo no navegador da Web é ilustrada no diagrama a seguir:

[![Imagem: Geração de texto dinâmico com variáveis](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/c/d/csm_hello-world-html-tags-dynamic-text-creation-johndoe_473b1da5b9.webp "Geração de texto dinâmico com variáveis")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/hello-world-html-tags-dynamic-text-creation-johndoe.png) Como resultado da execução do script, a variável $author recebeu o valor John Doe Se a página da Web deveria ser atribuída a Max Mustermann, colega alemão de John Doe, e não a John Doe, você pode corrigir isso alterando a variável *$author* .

[![Imagem: Variáveis são usadas para criar páginas da Web dinamicamente](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/d/3/csm_dynamic-text-creation-hello-world-max-mustermann_4162231627.webp "Variáveis são usadas para criar páginas da Web dinamicamente")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/dynamic-text-creation-hello-world-max-mustermann.png) Para a variável $author, o valor Max Mustermann é usado. Isso é particularmente eficiente se uma variável ocorrer várias vezes em um script. Nesse caso, uma correção só precisaria ser feita em um único ponto. Ou seja, onde o valor da variável é definido.

Isso ilustra a proeza do PHP: O conteúdo pode ser incorporado usando variáveis. Essa característica forma a base do desenvolvimento dinâmico da Web. Diferentemente das páginas estáticas da Web, que existem como páginas HTML pré-renderizadas, as páginas dinâmicas da Web são geradas somente quando a página é acessada. O interpretador PHP recupera elementos distintos da página da Web solicitada de vários bancos de dados por meio de variáveis e os compila em uma página HTML personalizada que se alinha à solicitação específica.

Os benefícios dessa abordagem são evidentes. Quando elementos do site (, por exemplo, na seção de rodapé) , são modificados, não são necessários ajustes manuais em cada subpágina individual. A atualização do registro correspondente **no banco de dados** é suficiente. Como resultado, as revisões são aplicadas automaticamente a todas as páginas da Web que apresentam os dados pertinentes como variáveis. Se uma **variável for definida várias vezes** em um script, a nova definição substituirá a anterior. Um *echo* subsequente sempre gera o valor atual de uma variável.

```php
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author.</p>";
$author = "Max Mustermann";
echo " <p>Supported by $author.</p>";
?>
```

[![Imagem: Sobregravação de variáveis](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/8/a/csm_dynamic-text-creation-overwriting-variables-jd-mm_9037154268.webp "Sobregravação de variáveis")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/dynamic-text-creation-overwriting-variables-jd-mm.png) O valor John Doe é sobrescrito com o valor Max Mustermann No exemplo de código, a variável *$author* foi primeiro atribuída ao valor *John Doe* e depois substituído pelo valor *Max Mustermann*.

Agora vamos ao assunto dos **marcos de citação**. Ao contrário das cadeias de caracteres, as variáveis simples não precisam ser colocadas entre aspas:

```php
<?php
$author = "John Doe";
echo $author;
?>
```

Exceto quando a variável precisa ser usada em uma cadeia de caracteres. Nesse caso, trabalhe com aspas duplas (*“*). Isso instrui o interpretador do PHP a procurar variáveis na cadeia de caracteres e substituí-las pelos valores correspondentes, conforme necessário. Strings entre aspas simples (*’*) são interpretadas e renderizadas como informações de texto simples, mesmo quando envolvem variáveis.

```php
<?php
$author = "John Doe";
echo '<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author.</p>';
?>
```

[![Imagem: Saída de texto simples com aspas simples](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/d/7/csm_hello-world-dynamic-content-simple-quote-marks_c165be0bf2.webp "Saída de texto simples com aspas simples")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/hello-world-dynamic-content-simple-quote-marks.png) Aspas simples resultam em saída de texto simples. As variáveis não são interpretadas. Agora você deve estar se perguntando o que acontece se omitir completamente as aspas. Nesse caso, o PHP aponta para um erro sintático.

### Mensagens de erro e mascaramento

Se **ocorrerem erros sintáticos** , não haverá código PHP válido e o interpretador do PHP emitirá uma mensagem de erro. Isso pode ser esperado, por exemplo, se você usar a instrução *echo* com uma string sem aspas:

```php
<?php
echo Hello World!;
?>
```

Na maioria dos casos, as mensagens de erro contêm informações sobre onde ocorreu um erro, fornecendo informações importantes sobre como eliminá-lo.

[![Imagem: Mensagem de erro do navegador da Web: Parse error](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/a/e/csm_php-web-browser-parse-error_f4a0746def.webp "Mensagem de erro do navegador da Web: Parse error")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-web-browser-parse-error.png) Uma mensagem de erro indica erros sintáticos no código do programa. No exemplo atual, suspeita-se de um erro na linha 2 do código do nosso programa. Foi exatamente nesse ponto que omitimos as aspas.

Os erros sintáticos também ocorrem quando você deseja gerar caracteres como texto que estão associados a uma tarefa específica no PHP. Um exemplo disso são as aspas (*’*). Caracteres como esse só podem ser exibidos como texto no PHP se você indicar ao interpretador que a função inerente do caractere foi neutralizada. No caso das aspas simples, há duas maneiras de fazer isso. Você pode colocar uma string de aspas simples entre aspas duplas ou pode mascarar as aspas com uma barra invertida anterior (*\\*):

```php
<?php
echo '\'Hello World!\' ';
?>
```

[![Imagem: A barra invertida como um caractere de mascaramento](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/3/a/csm_php-content-backslash-as-marking-symbol_4218c4c868.webp "A barra invertida como um caractere de mascaramento")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-content-backslash-as-marking-symbol.png) Se os caracteres forem mascarados com uma barra invertida, eles serão destituídos de sua função na sintaxe do PHP. A combinação de aspas simples e duplas também é uma abordagem viável:

```php
<?php
echo " 'Hello World!' ";
?>
```

No entanto, não esta ortografia:

```php
<?php
echo ' 'Hello World!' ';
?>
```

Os espaços entre as aspas foram inseridos nos exemplos para fins de legibilidade.

### Operadores de concatenação

Para gerar várias variáveis em um script PHP ao mesmo tempo, você pode usar o que aprendeu até agora e fazer o seguinte:

```php
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo "<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author1 and $author2.</p>";
?>
```

Basta escrever as duas variáveis na string entre aspas duplas junto com o restante do texto a ser gerado. O PHP reconhece automaticamente as variáveis pelo sinal de dólar (*$*) e insere os valores apropriados.

[![Imagem: Saída de texto com duas variáveis](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/f/8/csm_text-output-with-two-variables-php_4908dc12c9.webp "Saída de texto com duas variáveis")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/text-output-with-two-variables-php.png) As variáveis na string só são aceitas pelo PHP se o script não contiver funções. Entre os programadores, no entanto, esse procedimento é considerado impuro. Há uma regra de programação segundo a qual **variáveis não devem fazer parte da string**. Um motivo para isso é que muitas linguagens de programação exigem essa separação. Mais importante ainda, o PHP também exige que você separe string e variável ao trabalhar com chamadas de função ou variáveis mais complexas. Por isso, é melhor mantê-las separadas também na saída de texto simples, mesmo que isso não seja exatamente necessário nesse caso.

Ao trabalhar com variáveis, você sempre terá de lidar com vários elementos que precisam ser concatenados durante a saída. No PHP, o operador de concatenação \* \*\* \* (*.*) é usado para essa finalidade. Se programado de forma “limpa”, o código do exemplo acima deverá ter a seguinte aparência:

```php
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo '<h1>Hello World!</h1> 
<p>This dynamic web page was created by ' . $author1 . ' and ' . $author2 . '.</p>';
?>
```

[![Imagem: Conectando strings e variáveis com operadores de concatenação](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/b/f/csm_php-concatenation-of-strings-and-vars_ccc4296adb.webp "Conectando strings e variáveis com operadores de concatenação")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-concatenation-of-strings-and-vars.png) Operadores de concatenação conectam strings e variáveis Aqui estamos lidando com três strings e duas variáveis que foram concatenadas em uma string.

<table>
  <thead>
    <tr>
      <th><strong>String1</strong></th>
      <th></th>
      <th><strong>Variable1</strong></th>
      <th></th>
      <th><strong>String2</strong></th>
      <th></th>
      <th><strong>Variable2</strong></th>
      <th></th>
      <th><strong>String3</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>*’&amp;lt;h1&gt;Hello World!&amp;lt;/h1&gt;  
&amp;lt;p&gt;Esta página da Web dinâmica foi criada por ’*</td>
      <td>.</td>
      <td>*$author1*</td>
      <td>.</td>
      <td>*’ e ’*</td>
      <td>.</td>
      <td>*$author2*</td>
      <td>.</td>
      <td>*’.&amp;lt;/p&gt;’*</td>
    </tr>
  </tbody>
</table>

É importante mencionar que um operador de concatenação mescla cadeias de caracteres ou variáveis sem introduzir espaços. Se um espaço for pretendido, ele precisa ser explicitamente incluído entre aspas na cadeia de caracteres, conforme demonstrado no exemplo.

Os programadores empregam o operador de concatenação não apenas para combinar cadeias de caracteres e variáveis para saída textual, mas também para estender variáveis. O exemplo a seguir ilustra como isso é feito:

```php
<?php
$example = 'Hello ';
$ example .= 'World';
echo $ example;
?>
```

Para estender o valor de uma variável, defina-a novamente, mas coloque o operador de concatenação *dot (.)* antes do sinal de igual. Essa é a notação comum de **shorthand** para *$example = $example . ‘world’*.

O PHP anexará o novo valor ao valor definido anteriormente. Se você quiser um espaço entre os dois valores, escreva-o no final da primeira cadeia de caracteres, como no exemplo.

[![Imagem: Estendendo o valor de uma variável](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/4/3/csm_php-extending-string-variable-via-operator_b50d8cd1f4.webp "Estendendo o valor de uma variável")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-extending-string-variable-via-operator.png) A string Hello foi estendida para Hello World. ### Incorporar PHP em HTML

Em princípio, o interpretador do PHP só se interessa pelo código que está entre uma tag PHP de abertura e uma de fechamento:

`<?php [This section is parsed by the PHP interpreter] ?>`

O interpretador ignora todas as seções restantes do documento e as encaminha para o servidor da Web sem alterá-las. Como resultado, o código PHP pode ser incorporado sem problemas **em documentos HTML** conforme necessário, por exemplo, ao criar modelos para sistemas de gerenciamento de conteúdo. É fundamental salvar os documentos HTML que contêm código PHP com a extensão de arquivo PHP. Caso contrário, o documento será apresentado diretamente ao navegador da Web sem passar pelo pré-processamento do interpretador PHP. Esse cenário faria com que o código ficasse visível como texto no site.

Você pode pensar no interpretador PHP como o colega preguiçoso do servidor da Web, que só trabalha quando é explicitamente solicitado a fazê-lo, por exemplo, por uma tag PHP de abertura.

Para combinar **HTML e PHP**, escreva sua página HTML na estrutura clássica de documentos e salve-a com a extensão de arquivo *.php*:

```html

<html lang="de">
    <head>
        <meta charset="utf-8">
        <title>My first PHP page</title>
    </head>
        <body>
    <h1>Hello World</h1>
    <p>What is the current time and date?</p>
    <div class="hash d-none" hidden>hash_6332162d018f3b0469533e7a8b85d3be2111e277</div><script data-shy-copy-guard>(function(){var C=[0x00AD,0x200B,0x200C,0x200D,0x2060,0xFEFF];var s=function(t){for(var i=0;i<C.length;i++){t=t.split(String.fromCharCode(C[i])).join("");}return t;};document.addEventListener("copy",function(e){var sel=document.getSelection();if(!sel||sel.isCollapsed||!e.clipboardData){return;}e.clipboardData.setData("text/plain",s(sel.toString()));try{var d=document.createElement("div");d.appendChild(sel.getRangeAt(0).cloneContents());e.clipboardData.setData("text/html",s(d.innerHTML));}catch(x){}e.preventDefault();});})();</script></body>
</html>
```

Agora, adicione um script PHP ao seu documento HTML. Certifique-se de que todo o código esteja dentro das tags PHP.

```html

<html lang="de">
    <head>
        <meta charset="utf-8">
        <title>My first PHP page</title>
    </head>
    <body>
    <h1>Hello World</h1>
    <p>What is the current time and date?</p>
    <p>Your current time and date is: 
    <?php 
    echo date("d.m.Y H:i:s");
    ?>.</p>
    <div class="hash d-none" hidden>hash_6332162d018f3b0469533e7a8b85d3be2111e277</div><script data-shy-copy-guard>(function(){var C=[0x00AD,0x200B,0x200C,0x200D,0x2060,0xFEFF];var s=function(t){for(var i=0;i<C.length;i++){t=t.split(String.fromCharCode(C[i])).join("");}return t;};document.addEventListener("copy",function(e){var sel=document.getSelection();if(!sel||sel.isCollapsed||!e.clipboardData){return;}e.clipboardData.setData("text/plain",s(sel.toString()));try{var d=document.createElement("div");d.appendChild(sel.getRangeAt(0).cloneContents());e.clipboardData.setData("text/html",s(d.innerHTML));}catch(x){}e.preventDefault();});})();</script></body>
</html>
```

Nesse caso, mesclamos a construção de linguagem *echo* com a [função PHP date()](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/php-date/) para gerar a data e a hora atuais como texto do lado do servidor. O parâmetro da função designa o formato preferencial, indicado como uma cadeia de caracteres:

*d.m.Y H:i:s = dia.mês.ano hora:minuto:segundo*.

Quando um navegador da Web solicita esse arquivo, o interpretador PHP executa inicialmente o script, incorporando **a hora atual como texto** no documento HTML. Em seguida, o servidor da Web transmite esse documento, que é exibido no navegador como uma página da Web.

[![Imagem: Integração de PHP em HTML](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/7/6/csm_php-integration-in-html-date-and-time_e29bc48a32.webp "Integração de PHP em HTML")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-integration-in-html-date-and-time.png) O documento HTML contém um script PHP integrado que exibe a data atual, incluindo a hora. ### Função de comentário PHP

Semelhante ao código HTML, você também pode deixar comentários em seu código PHP. **Os comentários no código-fonte são desconsiderados pelo interpretador do PHP, desde que obedeçam às regras de sintaxe.** O PHP oferece três métodos distintos para comentários.

Para designar uma linha inteira como um comentário e, assim, excluí-la da interpretação, você pode utilizar a **hashtag (*\#*)** ou duas barras consecutivas \*\* (*//*)\*\*. Ambas as opções são usadas no exemplo de código a seguir:

```php
<?php
#This is a single-line comment!
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
//This is also a single-line comment!
?>
```

O editor de texto Notepad++ destaca os comentários em verde. Diferentemente dos comentários em HTML, as seções de texto rotuladas como comentários no ambiente de script não chegam ao navegador da Web. Essa distinção ocorre porque o interpretador PHP já as desconsidera durante a execução do script.

[![Imagem: Comentários de uma única linha](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/1/3/csm_php-single-line-comment_640e3220dd.webp "Comentários de uma única linha")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-single-line-comment.png) As linhas marcadas como comentários não são visíveis na saída. Além disso, você pode inserir comentários que se estendem **por várias linhas**. Para fazer isso, marque o início de uma seção de comentários com uma barra seguida de um asterisco (*/\**) e o final com um asterisco seguido de uma barra (*\*/*).

```php
<?php
/*
This is a multiple-line comment block
that spans over multiple
lines
*/
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>
```

Esses comentários não são analisados e não são exibidos no site.

[![Imagem: Exemplo de um comentário de várias linhas](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/7/0/csm_php-multi-line-comment_0a25521364.webp "Exemplo de um comentário de várias linhas")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-multi-line-comment.png) O comentário de várias linhas não é visível na saída. Os programadores usam comentários para estruturar o código-fonte de seus scripts, deixar notas para edição posterior edição posterior ou adicionar informações internas à compilação, como o autor ou a data. Os comentários são opcionais e devem ser **utilizados com moderação** para garantir a boa legibilidade do código-fonte.

### Cálculo com variáveis

Em nosso tutorial de PHP, você já encontrou variáveis, que contêm principalmente valores de cadeia de caracteres. Agora, vamos nos aprofundar nas variáveis que representam **inteiros** ou **floats**. Quando as variáveis armazenam valores numéricos, o PHP permite a realização de cálculos com elas. Vamos começar com a adição de dois números inteiros:

```php
<?php
$number1 = 237;
$number2 = 148;
$result = $number1 + $number2;
echo "result: " . $result;
?>
```

Primeiro, atribuímos os números inteiros 237 e 148 às variáveis $number1 e $number2 e, em seguida, definimos a variável *$result*. Isso é usado para armazenar a soma das variáveis $number1 e $number2. Para essa operação, usamos o operador aritmético ***+***(plus). Por fim, emitimos a soma como texto usando a construção de linguagem\* echo\* . Observe que não é necessário usar aspas ao atribuir valores numéricos a variáveis.

[![Imagem: Adição de números inteiros usando um script PHP](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/f/3/csm_php-script-simple-integer-addition_671413d935.webp "Adição de números inteiros usando um script PHP")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-simple-integer-addition.png) O resultado da adição é exibido como texto no navegador da Web. O exemplo de código a seguir mostra uma **seleção de cálculos matemáticos** que podem ser executados no lado do servidor com o PHP. Os operadores PHP usados correspondem, em sua maior parte, a símbolos matemáticos padrão.

<table>
  <thead>
    <tr>
      <th><strong>Operador aritmético</strong></th>
      <th><strong>Operation</strong></th>
      <th><strong>Result</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>*$number1 + $number2*</td>
      <td>Addition</td>
      <td>Soma de $number1 e $number2</td>
    </tr>
    <tr>
      <td>*$number1 - $number2*</td>
      <td>Subtração</td>
      <td>Diferença de $número1 e $número2</td>
    </tr>
    <tr>
      <td>*$number1 \*$number2*</td>
      <td>Multiplicação</td>
      <td>Produto de $número1 e $número2</td>
    </tr>
    <tr>
      <td>*$number1 / $number2*</td>
      <td>Divisão</td>
      <td>Quociente de $número1 e $número2</td>
    </tr>
    <tr>
      <td>$número1 \*\*$número2</td>
      <td>Power</td>
      <td>$number2-th power of $number1</td>
    </tr>
  </tbody>
</table>

```php
<?php
$number1 = 10;
$number2 = 5;
$addition = $number1 + $number2; //addition
$subtraction = $number1 - $number2; //subtraction
$multiplication = $number1 * $number2; //multiplication
$division = $number1 / $number2; //division
$power = $number1 ** $number2; //power
?>
```

```php
<?php 
echo "Result of addition: " . $addition ."<br />"; 
echo "Result of subtraction: " . $subtraction . "<br />"; 
echo "Result of multiplication: " . $multiplication . "<br />";
echo "Result of division: " . $division . "<br />";
echo "10 to the 5th power (10^5): " . $power . "<br />";
echo "root of 81: " . sqrt(81) . "<br />";
?>
```

[![Imagem: Calculando com variáveis](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/e/5/csm_php-script-various-arithmetic-operations_10b05f6845.webp "Calculando com variáveis")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-various-arithmetic-operations.png) Arithmetic operations at a glance Para cálculos complexos, várias operações aritméticas podem ser combinadas em um único script:

```php
<?php
$number1 = 10;
$number2 = 5;
$result = 2 *$number1 + 5* $number2 - 3 * sqrt(81);
echo "Result: " . $result; 
?>
```

O interpretador PHP determina os valores das variáveis e faz os cálculos:

`2 *10 + 5* 5 - 3 * √81 = 20 + 25 - 27 = 18`

A função *sqrt()* calcula a raiz quadrada do parâmetro entre colchetes. O clássico **ordem de classificação de operadores** da matemática se aplica: ponto antes do traço. A instrução *echo* produz o resultado como uma string para o navegador da Web.

[![Imagem: Cálculo matemático com duas variáveis e diferentes operadores aritméticos](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/0/4/csm_php-script-complex-calculation-two-variables_931ea22168.webp "Cálculo matemático com duas variáveis e diferentes operadores aritméticos")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-complex-calculation-two-variables.png) O PHP segue a regra do ponto antes da barra. O PHP também avalia **termos entre colchetes** primeiro. Desta vez, trabalharemos com números de ponto flutuante:

```php
<?php
$number1 = 2.5;
$number2 = 3.7;
$result = 2 *($number1 + 5)* ($number2 - 3) * sqrt(81);
echo "Result: " . $result; 
?>
```

[![Imagem: Cálculo com números de ponto flutuante e termos entre colchetes](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/5/6/csm_php-float-operation-with-brackets_a503b34181.webp "Cálculo com números de ponto flutuante e termos entre colchetes")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-float-operation-with-brackets.png) Cálculo PHP com o resultado 94,5 Como todas as linguagens de programação comuns, o PHP permite operadores para **incrementar ou decrementar** valores numéricos pelo valor 1. É feita uma distinção entre o operador de pré-incremento, o operador de pré-decremento, o operador de pós-incremento e o operador de pós-decremento.

<table>
  <thead>
    <tr>
      <th><strong>Operation</strong></th>
      <th><strong>Operator</strong></th>
      <th><strong>Result</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Pre-increment</td>
      <td>*++$number*</td>
      <td>O operador *++++* incrementa o valor da variável *$number*. O valor é incrementado em 1. O resultado é retornado como o novo valor de *$number*.</td>
    </tr>
    <tr>
      <td>Pre-decrement</td>
      <td>*–$number*</td>
      <td>O operador *–* diminui o valor da variável *$number*. Isso diminui o valor em 1. O resultado é retornado como o novo valor de *$number*.</td>
    </tr>
    <tr>
      <td>Post-increment</td>
      <td>*$number++*</td>
      <td>O valor atual de *$number* é primeiro retornado e, em seguida, incrementado em 1.</td>
    </tr>
    <tr>
      <td>Post-decrement</td>
      <td>*$number–*</td>
      <td>O valor atual de *$number* é primeiro retornado e depois diminuído pelo valor 1.</td>
    </tr>
  </tbody>
</table>

Primeiro, ilustraremos como executar operações aritméticas com operadores de incremento e decremento fornecendo um exemplo com pré-incremento. O script a seguir incrementa o valor da variável *$number* em 1, armazena o novo valor na variável *$result* e, em seguida, gera seu valor como uma cadeia de caracteres:

```php
<?php
$number = 0;
$result = ++$number;
echo "Result: " . $result;
?>
```

Se você aumentar o valor 0 por 1, obterá o resultado 1.

[![Imagem: Pré-incrementar o número 0](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/b/9/csm_php-operations-increment-plus-plus_a92e35ebde.webp "Pré-incrementar o número 0")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-operations-increment-plus-plus.png) O operador ++ incrementa 0 pelo valor 1. Para calcular o pré-decremento da variável *$number*, usamos os mesmos scripts, mas trocamos o operador de pré-incremento (*++*) por um operador de pré-decremento (*–*):

```php
<?php
$number = 0;
$result = --$number;
echo "Result: " . $result;
?>
```

Aqui, diminuímos o valor 0 da variável *$number* e obtemos o resultado -1.

[![Imagem: Pré-decrementar o número 0](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/d/e/csm_php-operations-decrement-minus-minus_e376198241.webp "Pré-decrementar o número 0")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-operations-decrement-minus-minus.png) O operador -- decrementa o número 0 pelo valor 1 Um aumento antes e depois da saída (pre- vs. post-…) de um valor pode ser demonstrado com o seguinte script:

```php
<?php
$x = 0;
echo '<p>result: ' . ++$x;
echo '<br>x has the value ' . $x;
echo '<p>result: ' . $x++;
echo '<br>x has the value ' . $x, '</p>';
?>
```

Em ambos os casos, obtemos o mesmo resultado. Com o pré-incremento, o valor de x é aumentado antes da saída na linha 3, enquanto que com o pós-incremento, ele é incrementado após a saída na linha 5.

[![Imagem: A diferença entre as pré e pós-incrementações](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/5/1/csm_php-script-pre-vs-post_7036587ea4.webp "A diferença entre as pré e pós-incrementações")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-pre-vs-post.png) Pre- and post-incrementations in comparison ## Como usar as superglobais $\_GET e $\_POST

Agora você está familiarizado com os fundamentos do PHP. Você pode trabalhar com variáveis, concatenar e realizar cálculos. A seguir, ilustraremos o papel fundamental das variáveis no scripting.

Uma função importante das linguagens de script é sua capacidade de avaliar a entrada do usuário e transferir os valores para outro script. O PHP depende das **superglobais $\_GET e $\_POST**-predefinidas**variáveis de sistema**disponíveis em todos os escopos-para a transferência de dados. Como arrays associativos (campos de dados),*$\_GET e $\_POST* armazenam um conjunto de variáveis na forma de strings em uma variável.

[As matrizes do PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/php-array/) podem ser comparadas a um armário com várias gavetas. Cada uma dessas gavetas oferece um espaço para armazenar dados. Para manter a clareza sobre o conteúdo de cada gaveta, você as marca com um nome de variável. Dependendo do tipo de array, esse identificador pode ser um **índice ou uma chave**. Nas matrizes indexadas, você atribui um índice numérico a cada gaveta, enquanto nas matrizes associativas, você rotula as gavetas usando uma chave baseada em cadeia de caracteres.

As superglobais *$\_GET e $\_POST* abrangem uma coleção de variáveis representadas como chaves, permitindo o acesso aos valores correspondentes. Vamos nos aprofundar mais nesse assunto quando explorarmos as *$\_GET e $\_POST* superglobais em profundidade.

### Transferência de dados via $\_GET

A superglobal *$\_GET* representa uma matriz de variáveis que são passadas para um script PHP usando um URL.

Se você passa algum tempo em **blogs** ou em**lojas on-line**e**fóruns da Internet**, deve ter notado alguns URLs estranhos. Normalmente, eles são estruturados de acordo com o seguinte esquema:

`http://hostname/ordner/filename.php?variablenname=variablevalue`

Para um blog, o esquema pode ser parecido com este:

`http://www.example-blog.com/index.php?id=1`

A decomposição desse URL é relativamente simples. Em um servidor da Web que tenha o domínio *example-blog.com* , há um arquivo chamado *index.php*. Esse arquivo é usado para criar páginas dinâmicas da Web e normalmente contém código HTML e PHP, além de referências a arquivos de modelos externos e folhas de estilo - essencialmente, todos os componentes necessários para a exibição da página da Web.

A adição de *id=1* em um URL é uma maneira comum de saber se uma página da Web é dinâmica. Você o encontrará localizado após o ponto de interrogação (*?*) em um URL. Esse componente é conhecido como uma string de consulta HTTP e contém uma variável (*id*) e um valor (*1*), que são vinculados por um sinal de igual (*=*). **Parâmetros de URL** dessa natureza são empregados para gerar páginas da Web dinâmicas, recuperar o conteúdo do banco de dados e acionar modelos apropriados.

Os sites dinâmicos permitem a **separação do conteúdo e da apresentação**. Embora o *index.php* contenha as informações sobre a estrutura de um site, ele ainda precisa ser preenchido com conteúdo. Esses conteúdos geralmente são armazenados em um banco de dados e podem ser acessados usando parâmetros na string de consulta HTTP. No exemplo, a URL do *index.php* passa o parâmetro *id=1*. Isso especifica qual conteúdo deve ser lido do banco de dados e carregado em *index.php*. No contexto de um blog, pode ser o ID de um artigo; em um fórum, uma determinada postagem. Em uma loja on-line, pode ser um produto específico.

Se um URL contiver mais de um parâmetro, eles serão conectados com um **ampersand (&amp;)**.

`www.example-blog.com/index.php?page=article&id=1`

A seguir, mostraremos como usar *$\_GET*. Para o exemplo, não é necessário usar um banco de dados. No script a seguir, usamos a superglobal *$\_GET* para ler os valores das variáveis *firstname*e*lastname* de uma string de consulta HTTP e gravá-los nas variáveis PHP $variable1 e $variable2:

```php
<?php
$variable1 = $_GET['firstname'];
$variable2 = $_GET['lastname'];
echo "Hello " . $variable1 . " " . $variable2 . "!";
?>
```

O script é chamado pelo seguinte URL:

*localhost/hello.php?firstname=John&amp;lastname=Doe*.

Os parâmetros *firstname=John*e*lastname=Doe* foram passados. A saída dos valores é feita exatamente como antes, usando a construção de linguagem *echo*.

[![Imagem: Dados sendo passados usando $_GET](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/9/0/csm_php-data-transmission-via-get_370f674c74.webp "Dados sendo passados usando $_GET")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-data-transmission-via-get.png) The URL parameters pass the variable value pairs firstname=John and lastname=Doe to the PHP script. Uma transferência de dados por meio de *$\_GET* inevitavelmente faz com que os **dados transferidos fiquem visíveis** na linha de endereço. Isso significa que os parâmetros que foram passados podem ser rastreados. A vantagem é que as variáveis podem ser armazenadas em hiperlinks. Além disso, os usuários têm a opção de salvar URLs incluindo a string de consulta HTTP como marcadores no navegador.

No entanto, o fato de os parâmetros GET serem listados em texto simples no URL torna esse método incompatível com a transferência de dados confidenciais, como os dados gerados por formulários on-line. Além disso, a quantidade de dados que pode ser passada usando *$\_GET* é limitada pelo comprimento máximo dos URLs.

Você pode contornar essas restrições com o método HTTP POST. Os dados que são passados com esse método podem ser encontrados na seção *$\_POST* superglobal.

### Transferência de dados via $\_POST

Enquanto no método GET os dados são passados como um parâmetro de URL, com *$\_POST*, a transferência de dados ocorre no corpo de uma solicitação HTTP. Isso possibilita até mesmo a passagem de grandes quantidades de dados de um script para outro.

Um campo de aplicação central do método HTTP POST é a **transferência de dados de formulários HTML**. Demonstraremos isso usando o exemplo de uma assinatura de boletim informativo.

Para fazer isso, crie um novo arquivo PHP com o nome *page1.php* e copie o seguinte bloco de código:

```php
<form method="post" action="page2.php" >
Please send your newsletter to: <br />
Your name: <input type="text" name="first name" /><br />
Your surname: <input type="text" name="lastname" /><br />
Your email address: <input type="text" name="email" /><br />
<input type="submit" value="Send form" />
</form>
```

O elemento HTML `<form>` é usado para criar formulários. A tag start contém dois atributos: *method*e*action*. Com o atributo *method* , você define o método de transmissão, nesse caso HTTP-POST. No atributo *action* , você armazena o URL de um script que recebe todos os dados inseridos nos campos de entrada subsequentes. O exemplo mostra um \*\*formulário HTML com três elementos de entrada \*\* (*input type=“text”*) e um botão \*\*submit \*\* (*input type=“submit”*). O arquivo *page2.php* é definido como o destinatário dos dados.

Para ilustrar a transferência de dados usando *$\_POST*, usaremos um script simples para avaliar os dados do formulário, que armazena os valores enviados como variáveis PHP e os exibe em forma de texto. Para fazer isso, crie um arquivo *page2.php* e insira o seguinte código de programa:

```php
<?php
$name = $_POST["name"];
$surname = $_POST["lastname"];
$email = $_POST["email"]; 
echo "Hello " . name . " " . $lastname . ", <br /> 
You have registered with the following e-mail address:" . $email . ".";
?>
```

Salve os dois arquivos PHP na pasta *htdocs* do seu servidor de teste e chame *page1.php* a partir do seguinte URL em seu navegador da Web: `http://localhost/page1.php`. Seu navegador agora mostrará a interface interativa da Web do formulário HTML.

[![Imagem: Entrada de dados via formulário HTML](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/c/6/csm_php-data-entry-via-html_e42fab277d.webp "Entrada de dados via formulário HTML")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-data-entry-via-html.png) O formulário HTML page1.php coleta dados do usuário e os envia para o script com o endereço page2.php Insira quaisquer credenciais e pressione o botão enviar para transferir variáveis de um script para outro. Depois de confirmar as *inputs de page1.php* , você será imediatamente redirecionado para *page2.php*. A janela do navegador mostrará o resultado da execução do script com base nos dados enviados.

[![Imagem: Saída de dados do usuário](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/d/a/csm_php-output-user-data-via-http-post_9e63209c29.webp "Saída de dados do usuário")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-output-user-data-via-http-post.png) Transferência de dados com o método HTTP POST e saída via echo A entrada do usuário capturada por meio dos campos de entrada *page1.php* será recuperada por *page2.php* via:

`$_POST["input field name"]`

A linha *$firstname = $\_POST\[“firstname”\]* recupera a entrada no campo de entrada *firstname* e a armazena na variável *$firstname*. A variável *$firstname* pode, por sua vez, ser emitida como uma string usando *echo*.

## Como usar os operadores de comparação do PHP e a construção IF

Até agora, definimos variáveis, as passamos de um script para outro e as produzimos como strings. Na próxima etapa, você aprenderá a vincular a execução de fragmentos de código a determinadas **condições**.

A **construção de linguagem *if*** permite que você escreva scripts de forma que as instruções só tenham efeito quando uma condição definida por você for atendida, por exemplo, digitar a senha correta.

As condições são definidas no PHP de acordo com a seguinte estrutura básica:

```php
<?php
if(expression)
    {
    statement;
    }
?>
```

Isso é o seguinte: Se a condição delineada em *expressão* for atendida, a *declaração* será executada. Uma condição é sempre atendida se o *if* construct retornar o resultado *TRUE* (true). Caso contrário, é considerada *FALSE* (false). Nesse caso, a declaração será ignorada.

Normalmente, a construção *if* verifica se o valor de uma variável corresponde ao que foi definido na condição. Essa **estrutura de controle** geralmente é realizada com base em operadores de comparação.

### Operadores de comparação

Os operadores de comparação são usados na formulação de condições para colocar dois argumentos em uma **relação lógica** que pode ser avaliada como verdadeira (*TRUE*) ou false (*FALSE*). Quando os operadores de comparação são usados em estruturas de controle do PHP, eles são aplicados a duas variáveis na *expressão* de uma *se* construção:

```php
if ($a == $b) 
    {
    statement;
    }
```

Em termos de linguagem, a estrutura de controle é a seguinte: Se a variável *$a* for igual à variável *$b*, então as instruções definidas na instrução *statement* são executadas.

Os **operadores de comparação do PHP** são baseados na linguagem de programação C e sua notação difere consideravelmente dos símbolos matemáticos clássicos. Uma visão geral pode ser encontrada na tabela abaixo.

<table>
  <thead>
    <tr>
      <th><strong>Operador de comparação</strong></th>
      <th><strong>Description</strong></th>
      <th><strong>Condition</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>*==*</td>
      <td>equals</td>
      <td>A condição é atendida se *$a*e $b tiverem o mesmo valor.</td>
    </tr>
    <tr>
      <td>*===*</td>
      <td>é idêntico</td>
      <td>A condição é atendida se *$a*e $b tiverem o mesmo valor e pertencerem ao mesmo tipo de dados. Isso pode ser ilustrado com um exemplo em que um inteiro (1) é comparado com uma string (“1”):  
*1 == “1” //TRUE  
1 === “1” //FALSE*  
Para condições que exigem que duas variáveis sejam iguais, é melhor usar sempre o operador relacional *===* (é idêntico).</td>
    </tr>
    <tr>
      <td>*!=*</td>
      <td>é desigual</td>
      <td>A condição é atendida se *$a*e $b tiverem valores desiguais.</td>
    </tr>
    <tr>
      <td>*!==*</td>
      <td>não idênticos</td>
      <td>A condição é atendida se *$a*e $b tiverem valores desiguais ou pertencerem a tipos de dados diferentes.</td>
    </tr>
    <tr>
      <td>*&lt;*</td>
      <td>é menor que</td>
      <td>A condição é atendida se o valor *$a* for menor que o valor *$b*.</td>
    </tr>
    <tr>
      <td>*&gt;*</td>
      <td>é maior que</td>
      <td>A condição é atendida se o valor de *$a* for maior que o valor de *$b*.</td>
    </tr>
    <tr>
      <td>*&lt;=*</td>
      <td>é menor ou igual a</td>
      <td>A condição é atendida se o valor de *$a* for menor que o valor de *$b* ou *$a*e $b têm o mesmo valor.</td>
    </tr>
    <tr>
      <td>*&gt;=*</td>
      <td>é maior ou igual a</td>
      <td>A condição é atendida se o valor de *$a* for maior que o valor de *$b* ou *$a*e $b têm o mesmo valor.</td>
    </tr>
  </tbody>
</table>

O script a seguir deve esclarecer essa estrutura de controle. Dois números inteiros são comparados. É usado o operador de comparação *&lt;* (is smaller) :

```php
<?php
$number1 = 10;
$number2 = 20;
if($number1 < $number2) { 
    echo "The condition is fulfilled";
}
```

Definimos as variáveis $number1 e $number2 e atribuímos a elas os valores *10*e*20*. Em seguida, definimos uma condição: Se *$number1* for menor que *$number2*, a cadeia de caracteres listada na instrução *echo* deve ser gerada.

O resultado da execução do script contém a resposta: 10 é menor que 20. O construto *if* retorna o resultado *TRUE*. A condição foi atendida.

[![Imagem: A construção de linguagem if no aplicativo](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/1/2/csm_php-control-flow-if_16b3cf818a.webp "A construção de linguagem if no aplicativo")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-control-flow-if.png) Se a condição for atendida, a instrução será executada. Para definir declarações que são executadas se uma condição não for atendida, adicione a construção de linguagem *else* ao *if* para formar uma declaração [*if-else*](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/if-else-php/) em PHP:

```php
<?php
if(condition a)
    {
    statement b;
    }
else 
    {
    statement c
    }
?>
```

Esse script verifica se a *condição a* retorna *TRUE* ou *FALSE*. Se *a condição a* for atendida (*TRUE*) *statement b* is executed. Se *a condição a* não for atendida (*FALSE*), *a instrução b* é ignorada e *a instrução c* é executada em seu lugar.

Vamos estender nosso script com o *else* construct e trocar o operador de comparação *&lt;* (é menor) para *==* (é igual):

```php
<?php
$number1 = 10;
$number2 = 20;
if($number1 == $number2) 
    { 
    echo "The condition is fulfilled";
    }
else 
    {
    echo "The condition is not fulfilled";
    }
?>
```

Desta vez, a *if* construct retorna *FALSE*. O valor da variável *$number1* não é igual ao valor de *$number2*. A condição não é atendida. Portanto, a instrução listada em *if* não é executada, mas a definida em *else* é.

[![Imagem: A construção de linguagem else no aplicativo](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/c/7/csm_php-control-flow-else_f9627cba70.webp "A construção de linguagem else no aplicativo")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-control-flow-else.png) Se a condição não for atendida, a instrução definida em else será executada.  Nota Para vincular a execução de um fragmento de código a dois valores iguais, um sinal de igual duplo (*==*) é usado no PHP. Um único sinal de igual (*=*) é usado para atribuir valores a variáveis.

Você pode **negar condições** colocando um ponto de exclamação (*!*) before an *expression*.

```php
<?php
$number1 = 10;
$number2 = 20;
if ($number1 == $number2) 
    { 
    echo "The numbers are the same.";
    }
if (!($number1 == $number2))
    {
    echo "The numbers are not equal.";
    }
?>
```

Esse exemplo destaca a condição *$number1 == $number2* e sua negação. *!($number1 == $number2)* é equivalente a *($number1 != $number2)*.

Uma aplicação prática de *if*and*else* é a **consulta de senha** baseada em um formulário HTML. Podemos simular isso usando nossos arquivos PHP *page1.php*e*page2.php*.

Abra *page1.php* e cole o código a seguir:

```php
<form action="page2.php" method="post">
Please enter your password: <input type="password" name="password" />
<input type="submit" value="send" />
</form>
```

A estrutura corresponde a um formulário criado anteriormente. Desta vez, no entanto, um campo de entrada é suficiente: a consulta de senha. Como antes, a entrada do usuário é passada para o script *page2.php* .

Podemos adaptar isso usando o código a seguir para que a entrada de senha **seja comparada com uma senha armazenada**:

```php
<?php
$password = $_POST["password"];
if($password=="qwertz123")
    {
    echo "The password was correct";
    }
else
    {
    echo "The password was incorrect";
    }
?>
```

O código pode ser explicado da seguinte forma: Inicialmente, atribuímos um valor à variável *$password* na linha 2, que recuperamos usando o método HTTP POST. Em seguida, definimos a seguinte estrutura de controle: O *if* construct na linha 3 deve verificar se o valor da variável *$password* corresponde à string *qwertz123*. Se esse for o caso, a cadeia de caracteres *A senha estava correta* é emitida. Se *if* retorna o resultado *FALSE*, *else* é usado na linha 7 e a string *The password was incorrect* é emitida.

Agora chamamos o script *page1.php* por meio do URL `http://localhost/page1.php`.

[![Imagem: Interface da Web do formulário HTML para consulta de senha](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/4/6/csm_php-password-entry-page-html_f183b1ceaf.webp "Interface da Web do formulário HTML para consulta de senha")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-password-entry-page-html.png) O formulário HTML solicita que você digite uma senha. O navegador apresenta a visualização da Web do nosso formulário HTML de solicitação de senha. Digitamos a senha *quertz123* definida no script *page2.php* e, em seguida, clique no botão **Submit** .

[![Imagem: A consulta da senha estava correta](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/5/5/csm_php-password-entry-correct_82922a4b36.webp "A consulta da senha estava correta")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-password-entry-correct.png) O script confirma que a senha inserida está correta. O navegador da Web nos redireciona automaticamente para *page2.php* enquanto a estrutura de controle *if* compara nossa entrada com a senha armazenada. Ela chega ao resultado “*qwertz123 == qwertz123* is *TRUE*” e, em seguida, gera a string *The password was correct*.

Teste você mesmo para ver o que acontece quando você digita uma senha diferente no campo de entrada.

### Operadores lógicos

As condições que você define usando operadores de comparação na *expressão* do *se* construção pode ser combinada com outras condições na mesma *expressão* se necessário. O PHP conta com os operadores lógicos **AND**and**OR**.

<table>
  <thead>
    <tr>
      <th><strong>Close Bond</strong></th>
      <th><strong>Weak Bond</strong></th>
      <th><strong>Description</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>*&amp;&amp;*</td>
      <td>*AND*</td>
      <td>Ambas as condições associadas ao operador devem ser *TRUE*.</td>
    </tr>
    <tr>
      <td>*||*</td>
      <td>*OR*</td>
      <td>Apenas uma das duas condições associadas ao operador deve ser *TRUE*.</td>
    </tr>
  </tbody>
</table>

Para combinar condições, você pode usar **operadores lógicos de limite fechado e de limite fraco** no PHP. No uso prático, o emprego de qualquer uma das duas grafias isoladamente não produzirá nenhuma distinção perceptível. Se você combinar as duas grafias, verá que *OR* e *||* ligam-se mais estreitamente do que *AND* e OR. Além disso, *AND* and &amp;&amp; se ligam mais fortemente do que *OR* and *||*. Isso é comparável à classificação de operadores conhecida dos operadores matemáticos (e.g., ponto antes do traço: *\**liga-se mais estreitamente do que*+*).

A **consulta de senha** oferece um exemplo prático. Normalmente, as credenciais de login incluem uma senha secreta e um nome de usuário. O login só será bem-sucedido se ambas as entradas corresponderem aos dados armazenados no sistema.

Agora, abriremos novamente nosso formulário de consulta de senha em *Page1.php* e adicionaremos um campo de entrada para o nome de usuário:

```php
<form action="page2.php" method="post">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="Submit" />
</shape>
```

Na próxima etapa, precisamos ajustar a estrutura de controle da construção *if* . Usamos o operador lógico *AND* para vincular a condição da consulta de senha a uma condição da consulta de nome de usuário.

```php
<?php
$username = $_POST["username"];
$password = $_POST["password"];
if($username=="John Doe" AND $password=="qwertz123")
    {
    echo "Welcome to the internal area" . $username . "!";
    }
else
    {
    echo "Access failed";
    }
?>
```

Em nosso script *page2.php* os valores para *username*e*senha* são obtidas e salvas nas variáveis *$username*e $password. A *expressão* dentro da *se* construção agora contém **duas condições vinculadas pelo operador lógico *AND***. Ambas as condições devem ser atendidas (*nome de usuário==“John Doe”*e*$senha==“qwertz123”*) for*if*para retornar o resultado*TRUE*.

Ao recuperar o nome de usuário do campo de entrada *username*, podemos usá-lo diretamente na saída textual usando a instrução *echo* statement. *Welcome to the internal area* é seguido pelo valor em *$username*. Se uma das duas condições não for atendida, a saída de texto será: *Access failed*.

[![Imagem: Consulta de senha com duas condições](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/3/2/csm_php-password-check-with-two-conditions_8e5987726d.webp "Consulta de senha com duas condições")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-password-check-with-two-conditions.png) O script só confirma a entrada da senha correta se ambas as condições forem atendidas. Os operadores lógicos podem ser combinados de qualquer maneira. Lembre-se de que *AND* tem uma precedência de operador maior do que *OR*. Como nas equações matemáticas, o PHP permite que você use parênteses para indicar a precedência.

## Como usar loops (while, for)

Às vezes, um script precisa executar uma determinada seção de código várias vezes antes de executar o restante do código do programa. As linguagens de programação usam o conceito de loops para isso. Existem **três tipos** de [loops no PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/php-loop/):

- *while* loops
- *do-while* loops
- *for* loops

### *while* loops

O *while* loop é o tipo mais simples de loop no PHP. Aqui está a **estrutura básica**:

```php
while (condition)
    {
    loop step and other instructions
    }
```

O *while* loop diz ao PHP para executar as substituições enquanto a *while* condição for atendida. Para fazer isso, o interpretador do PHP verifica a condição no início de cada passagem do loop. A execução do código subordinado só é interrompida quando a condição *while* não é mais atendida.

Esse princípio pode ser ilustrado com um script de contagem simples:

```none
<?php
$number = 1;
while ($number <= 10) {
    echo $number++ . "<br />";
    }
?>
```

O conceito de incremento foi apresentado na seção Calculando com variáveis deste tutorial. No script subsequente, desenvolvemos esse conceito, mas com um toque diferente. Desta vez, utilizamos um operador de pós-incremento. Isso aumenta o valor da variável inteira *$number* em 1 após cada iteração do loop, imediatamente após a saída de texto *echo* . Definimos a condição para o loop *while* da seguinte forma: *$number* é maior ou igual a 10. Consequentemente, a instrução *echo* será executada repetidamente até que o *$number* supere o valor 10.

[![Imagem: O script conta até 10 e, em seguida, interrompe](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/f/5/csm_php-script-count-to-ten_3973aac3b7.webp "O script conta até 10 e, em seguida, interrompe")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-count-to-ten.png) O script incrementa a variável $num até atingir um valor maior que 10. O resultado da execução do script é uma string que imprime o valor da variável *$number* para cada passagem do loop antes de ser incrementada. Como resultado, o script conta de 1 a 10 e interrompe a execução do código assim que a condição *while* não é mais atendida.

### *do-while* loops

A estrutura do loop *do-while* é semelhante à do loop *while* . A única diferença é que a condição não é verificada no início de cada passagem do loop, mas somente no final. O **esquema básico de um *do-while* loop** é o seguinte:

```php
do {
     loop step and other instructions
     }
    while (condition)
```

Programado como um *do-while* loop, o script anterior teria a seguinte aparência:

```php
<?php
$number = 1;
do {
    echo $number++ . "<br />";
    }
while ($number <= 10);
?>
```

Nesse caso, o resultado permanece o mesmo. O que há de especial no *do-while* loop é que ele é executado pelo menos uma vez, mesmo que a condição não seja atendida em nenhuma passagem do loop.

### *for* loops

Em geral, o *for* loop em um script PHP tem a mesma função que o *while* loop. No entanto, ao contrário do *while* loop, o **valor inicial, a condição e a instrução são gravados em uma única linha** em vez de serem distribuídos em três ou mais linhas. A estrutura básica do *for* loop é:

```php
for (start value; condition; loop step)
    instructions
```

O exemplo acima poderia ser escrito de forma mais compacta como um *for loop*:

```php
<?php
for($number = 1; $number <= 10; $number++) {
    echo $number . "<br /> ";
}
?>
```

Primeiro, o valor *1* é definido para *$number*. Em seguida, o PHP verifica se a condição *$number &lt;= 1* é atendida. Se esse for o caso, o loop continua e as instruções abaixo do loop são executadas (aqui a instrução é *echo*). Quando isso for feito, as etapas do loop serão executadas. Nesse contexto, a escolha entre pré ou pós-incremento torna-se irrelevante, pois essa etapa sempre ocorre antes da saída. Após a conclusão da etapa do loop, a iteração subsequente do loop é iniciada.

Em um *for* loop, a semente, a condição e a etapa do loop são consideradas **componentes opcionais**. Em teoria, até mesmo loops vazios são viáveis. No entanto, esses loops seriam redundantes.

Cabe basicamente a você decidir se escreve seus scripts PHP com um *for* ou um *while* loop. No entanto, há um argumento para escolher *for* loops: Quando são usados *for* loops, você tem uma visão melhor dos dados da estrutura do loop. Isso evita o risco de escrever acidentalmente um loop infinito que é executado até que a memória do interpretador esteja cheia. Com relação ao exemplo anterior, isso pode acontecer quando você se esquece de incrementar o valor da variável *$number* .

Entretanto, se o loop tiver que ser executado pelo menos uma vez, independentemente da condição, o *loopdo-while* é o loop a ser usado.

### *break*and*continue* statements

A execução de um *while*, *do-while* ou *for* o loop pode ser influenciado pelas declarações *break*e*continue* . Use *break* para interromper o fluxo de um loop em qualquer ponto e *continue* para pular uma passagem do loop. Ambas as instruções estão vinculadas a uma condição usando *if*. O exemplo a seguir mostra nosso script de contagem com um *break*:

```php
<?php
for ($number = 1; $number <= 10; $number++) {
    if ($number == 5) {
      echo "If it is 5, we abort the script!";
      break;
    }
echo $number . "<br /> ";
}
?>
```

No *for* loop, definimos que o valor da variável *$number* deve ser aumentado pelo valor 1 em cada rodada do loop, começando em 1, até que a variável atinja o valor 10. Podemos parar esse **loop prematuramente** usando *break* assim que *$number* tiver atingido o valor 5. A construção de linguagem *echo* só produz os números de 1 a 4.

[![Imagem: for loop with break](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/7/e/csm_php-script-for-loop-with-break_417f95ac97.webp "for loop with break")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-for-loop-with-break.png) A instrução break interrompe o loop assim que a condição if é atendida. Para **pular a saída da quinta rodada**, mas não interromper todo o fluxo do loop, substituímos a instrução *break* statement with *continue*:

```php
<?php
for ($number=1; $number <= 10; $number++) {
    if ($number == 5) {
      echo "Let's skip the 5!<br />";
      continue;
    }
echo $number . "<br /> ";
}
?>
```

Em vez do dígito 5, o PHP gera a string de texto *Passamos o número 5!* definido em *se*.

[![Imagem: for loop com instrução continue](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/8/2/csm_php-script-for-loop-with-continue_5f470e78e8.webp "for loop com instrução continue")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-for-loop-with-continue.png) O loop for é interrompido por uma instrução continue. ## Como executar operações de arquivo

O conteúdo dinâmico da Web é estruturado com base no princípio da separação entre conteúdo e apresentação. Para isso, as linguagens de script, como o PHP, oferecem um conjunto diversificado de funcionalidades que facilitam a integração perfeita de conteúdo de fontes de dados externas em arquivos de modelos centrais. Na prática, essas fontes de dados geralmente são bancos de dados gerenciados por sistemas de gerenciamento como o MySQL. Você pode descobrir como isso funciona em nosso tutorial do MySQL.

Também é possível **incluir dados de arquivos**. A seguir, mostraremos como ler arquivos como uma string em um script PHP e salvar a saída de texto do script em arquivos.

### Leitura de arquivos

Para ler o conteúdo de um arquivo, o PHP tem várias funções. Dentre elas, *file()*e*file\_get\_contents()* são particularmente adequados para a tarefa em questão. Enquanto a função *file\_get\_contents()* lê todo o conteúdo de um arquivo em uma string, a função *file()* salva o conteúdo como uma matriz. Cada elemento da matriz corresponde a uma linha do arquivo. Usar *file()* facilita a saída de cada linha individualmente.

Demonstraremos as operações de arquivo PHP no arquivo de texto *example.txt*, que colocamos na pasta *htdocs* do nosso servidor de teste. O arquivo contém quatro linhas de texto fictício:

*Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.*

Primeiro, precisamos ler o arquivo inteiro como uma string. Para fazer isso, temos que atribuir o nome do arquivo correspondente como um parâmetro à função *file\_get\_contents()* :

`file_get_contents('example.txt')`

Agora temos a oportunidade de trabalhar com a string que foi lida. Por exemplo, podemos atribuí-la a uma variável e exibi-la como texto no navegador da Web:

```php
<?php
$example = file_get_contents('example.txt');
echo $example;
?>
```

[![Imagem: O script lê o arquivo example.txt.](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/7/e/csm_php-script-reads-example-text_13b62511f6.webp "O script lê o arquivo example.txt.")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-script-reads-example-text.png) O arquivo que foi lido é salvo no navegador. Na exibição do navegador, podemos ver que a string de texto é gerada sem parágrafos. As quebras de linha do arquivo original não são visíveis. Isso ocorre porque o navegador da Web interpreta a saída de texto do script como código HTML. As quebras definidas nos editores de texto são perdidas.

Para manter a estrutura original, você tem algumas opções. Você pode adicionar a codificação HTML para a quebra de linha (*br*) no arquivo de origem manualmente usando a função pesquisar e substituir, colocar um `<pre>` ao redor do conteúdo do arquivo, defina a propriedade CSS *white-space: pre -wrap* ou use o *nl2br()* função para sinalizar ao PHP para converter automaticamente as quebras de linha (*novas linhas*) para quebras de linha HTML (*quebras*). Aqui está o código:

```php
<?php
$example = file_get_contents('example.txt');
echo nl2br($example);
?>
```

Se a construção de linguagem *echo* for usada em combinação com *nl2br()*, o PHP insere uma quebra de linha HTML antes de cada nova linha.

[![Imagem: O nl2br() função no aplicativo](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/3/6/csm_php-function-nl2br_6e245b6253.webp "O nl2br() função no aplicativo")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-function-nl2br.png) nl2br() ajuda a estruturar os dados importados. Para gerar as **linhas de um arquivo** individualmente, você pode usar a *função file()* . Essa função lê um arquivo, numera todas as linhas que começam com o número 0 e salva seu conteúdo como elementos de uma matriz. Aplicar isso ao nosso exemplo produz o seguinte resultado:

\[0\] = *Lorem ipsum dolor sit amet, consectetuer adipiscing elit*

\[1\] = *Aenean commodo ligula eget dolor. Aenean massa.*

\[2\] = *Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.*

\[3\] = *Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem*

Para gerar o respectivo conteúdo usando *echo*, basta especificar o número da linha desejada. Por exemplo, o script a seguir nos fornece apenas a primeira linha do arquivo *example.txt* como saída para o navegador:

```php
<?php
$example = file("example.txt");
echo $example [0];
?>
```

[![Imagem: O arquivo() função no aplicativo](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/e/0/csm_php-function-file-in-action_d1aa1693e4.webp "O arquivo() função no aplicativo")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-function-file-in-action.png) Selecione qual elemento da matriz você deseja gerar. ### Gravar arquivos

O PHP vai além da mera leitura de arquivos, permitindo também que você leia, crie e modifique arquivos sem esforço.

O uso da função *file\_put\_contents()* é um excelente exemplo. Ela requer apenas **dois parâmetros**: o nome do arquivo de destino e os dados, que podem ser uma string ou uma matriz. No script abaixo, um novo arquivo chamado *test.txt* é criado, contendo a string *This is a test!*. A inclusão de \\r\\n garante uma quebra de linha no arquivo.

```php
<?php
file_put_contents("test.txt", "This is a test! \r\n");
echo "test.txt has been created!";
?>
```

[![Imagem: Operações de arquivo: Write files](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/a/e/csm_php-file-operation-write-test_d33bbcc2c9.webp "Operações de arquivo: Write files")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-file-operation-write-test.png) O script PHP grava a string -This is a test!- no arquivo test.txt. Como *file\_put\_contents* não fornece nenhuma saída para o navegador, adicionamos uma instrução echo que nos informa qual ação está sendo executada.

Se já houver um arquivo com o mesmo nome na pasta de destino, ele será substituído. Você pode evitar isso definindo o parâmetro FILE\_APPEND:

```php
<?php
file_put_contents("test.txt","The test was successful! \r\n", FILE_APPEND);
echo "test.txt has been updated!";
?>
```

Ao usar file\_put\_contents() com o parâmetro FILE\_APPEND, o novo conteúdo será anexado ao conteúdo existente.

[![Imagem: Operações de arquivo: Atualizar arquivos](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/4/6/csm_php-file-operation-update-test-successful_2ca0b62062.webp "Operações de arquivo: Atualizar arquivos")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-file-operation-update-test-successful.png) O script PHP adiciona a string: O teste foi bem-sucedido! O que o PHP grava no arquivo de destino não precisa necessariamente ser definido no script. Como alternativa, você pode **transferir o conteúdo de um arquivo para outro**. O script a seguir lê o conteúdo de *example.txt* e o insere no arquivo test.txt:

```php
<?php
$example = file_get_contents("example.txt");
file_put_contents("test.txt", $example, FILE_APPEND);
echo "test.txt has been updated!";
?>
```

[![Imagem: Operações de arquivo: Transferir conteúdo de um arquivo para outro](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/a/7/csm_php-copy-contents-of-file_b045181922.webp "Operações de arquivo: Transferir conteúdo de um arquivo para outro")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/php-copy-contents-of-file.png) O script PHP lê os dados do arquivo example.txt e os adiciona ao arquivo test.txt.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/aprenda-php-nosso-tutorial-abrangente-sobre-php-para-iniciantes/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/aprenda-php-nosso-tutorial-abrangente-sobre-php-para-iniciantes/) for AI/LLM consumption.