Includes no PHP

Server Side Includes (SSI) são usados para criar funções, cabeçalhos, rodapés ou elementos que serão reutilizados em múltiplas paginas.

Server Side Includes

Você pode inserir o conteúdo de um arquivo dentro de um arquivo PHP antes que o servidor o execute com as funções include() ou require(). As duas funções são idênticas exceto na forma como elas lidam com os erros. A função include() gera um aviso (warning) e o script continua a sua execução. Já a função require() gera um erro fatal (fatal error) e a execução do script para naquele momento.

Estas duas funções são usadas para criar funções, cabeçalhos, rodapés ou elementos que são reutilizados em múltiplas paginas.

Isso pode ser uma grande economia de tempo para o desenvolvedor. Isto significa que você pode criar um cabeçalho padrão ou um arquivo de menu que você vai querer incluir em todas as suas páginas. Quando o cabeçalho precisa ser mudado, tudo que você precisa é de atualizar este arquivo incluído.

A função include()

A função include() copia todo o conteúdo do arquivo especificado dentro do arquivo que esta chamando a função.

Exemplo 1

Assuma que você tem um arquivo de cabeçalho padrão chamado "cabecalho.php". Para incluir o cabeçalho em uma página, use a função include() desta forma:
   1:<html>
2:<body>
3:<?php include("cabecalho.php"); ?>
4:<h1>Seja bem vindo à minha pagina</h1>
5:<p>(...)</p>
6:</body>
7:</html>


Exemplo 2

Vamos agora assumir que você tem um menu padrão utilizado em todas as páginas. Veja o arquivo "menu.php" abaixo:

1:<a href="padrao.php">Home</a> |
2:<a href="sobre.php">Sobre nós</a> |
3:<a href="contato.php">Contato</a>


Os três arquivos, "padrão.php", "sobre.php" e "contato.php" devem incluir o arquivo "menu.php". Aqui esta o código em "padrao.php":

   1:<html>
2:<body>
3:<?php include("menu.php"); ?>
4:<h1>Seja bem vindo à nossa página</h1>
5:<p>(...)</p>
6:</body>
7:</html>


Se você olhar o código fonte do da saída do script "padrao.php" em um browser, Ele se parecerá com o nós temos abaixo:

1:<html>
2:<body>
3:<a href="padrao.php">Home</a> |
4:<a href="sobre.php">Sobre nós</a> |
5:<a href="contato.php">Contato</a>
6:<h1>Seja bem vindo à nossa página</h1>
7:<p>(...)</p>
8:</body>
9:</html>


E é claro, nós teriámos que fazer a mesma coisa com "sobre.php" e "contato.php".

Usando arquivos include, você simplesmente teria que atualizar o texto no arquivo "menu.php" se você decidisse renomear ou alterar a ordem dos links ou adicionar outra página ao seu site.

A função require()

A função require() é identica à função include(), exceto pela forma como elas lidam com erros.

A função include() gera um aviso (warning) e o script continua sua execução enquanto o require gera um erro fatal e a execução para naquele momento.

Se você inclui um arquivo com a função include() e um erro acontece, você deve receber uma mensagem parecida com a que temos abaixo:

Código php:
   1:<html>
2:<body>
3:<?php
4:include("arquivo errado.php");
5:echo "Olá mundo!";
6:?>
7:</body>
8:</html>


Mensagem de erro:
( ! ) Warning: include(arquivo errado.php) [function.include]: failed to open stream: No such file or directory in C:\bin\xampp\htdocs\tmp.php on line 4
Call Stack
#TimeMemoryFunctionLocation
10.004658472{main}( )..\tmp.php:0

( ! ) Warning: include() [function.include]: Failed opening 'arquivo errado.php' for inclusion (include_path='.;C:\bin\xampp\php\pear\') in C:\bin\xampp\htdocs\tmp.php on line 4
Call Stack
#TimeMemoryFunctionLocation
10.004658472{main}( )..\tmp.php:0
Olá mundo!



Vamos agora executar o mesmo código com a função require() e comparar o resultado:

Código PHP:
   1:<html>
2:<body>
3:<?php
4:require("arquivo_errado.php");
5:echo "Olá mundo!";
6:?>
7:</body>
8:</html>


Mensagem de erro:

( ! ) Warning: require(arquivo_errado.php) [function.require]: failed to open stream: No such file or directory in C:\bin\xampp\htdocs\tmp.php on line 4
Call Stack
#TimeMemoryFunctionLocation
10.003558728{main}( )..\tmp.php:0

( ! ) Fatal error: require() [function.require]: Failed opening required 'arquivo_errado.php' (include_path='.;C:\bin\xampp\php\pear\') in C:\bin\xampp\htdocs\tmp.php on line 4
Call Stack
#TimeMemoryFunctionLocation
10.003558728{main}( )..\tmp.php:0



A comando echo não foi executado porque a execução do script parou depois do erro fatal.

É recomendado usar o require() ao invés do include() porque scripts não devem continuar executando se existem arquivos faltando ou com nomes errados.

Fonte

Nenhum comentário:

Postar um comentário