Curso de PHP/Imprimir

Origem: Wikilivros, livros abertos por um mundo aberto.
Saltar para a navegação Saltar para a pesquisa

Curso php cover.png
Application-x-php.svg

Este é um tutorial de PHP para principiantes, ou seja, para pessoas que nunca tiveram contato com PHP antes. Pretende-se um livro simples, seguindo uma ordem de aprendizagem cronológica e ordenada.

Esta obra é o resultado da experiência de várias pessoas, que acreditam que a melhor forma do conhecimento é o conhecimento compartilhado.

Pré-requisitos[editar | editar código-fonte]

Este curso pretende ensinar a desenvolver toda a compreensão sobre a linguagem PHP em pouco tempo (em alguns meses, dependendo do seu empenho, o leitor já será um bom programador de PHP). Este curso assenta-se numa técnica de aprendizagem denominada Padrão Eficaz, conceito desenvolvido no livro Introdução à Programação. Assim sendo, um dos pré-requisitos é a leitura compreensiva deste livro para poder acompanhar este curso com sucesso. Outras fontes externas serão, obviamente, construtivas.

Se o leitor já tiver alguma experiência com outras linguagens de programação, provavelmente poderá saltar todos os tópicos do livro de Introdução à Programação, não deixando de ler, naturalmente, a parte sobre o Padrão Eficaz.

O PHP é uma linguagem que, embora possa ser usada para a construção de aplicações baseadas em script para funcionamento no computador, é muito mais eficaz para a elaboração de scripts para uso em páginas dinâmicas na Internet. Se a última opção for o seu objetivo - e provavelmente o é -, é importante que tenha uma visão geral sobre HTML (tags, meta-tags, estrutura do documento), assim como uma abordagem sobre o sucessor do HTML, o XHTML, e sobre a estrutura de folhas de estilo CSS. Referências poderão ser encontradas aqui: Curso de HTML, XHTML e CSS.

É necessária a instalação de um servidor Web com PHP. Para o estudo dos temas relacionados com a ligação às bases de dados MySQL, é necessária também a existência de um servidor SQL. Para facilitar a instalação e configuração destas aplicações, sugerimos aos usuários de Windows (NT series ― NT, 2000 e XP) descarregar a última versão do Wamp e instalá-la em seu ambiente. Este pacote inclui o servidor Apache 2, PHP5 e MySQL5 já configurados e prontos a arrancar. Usuários de Linux e MacOS possivelmente já têm um servidor Web instalado; para informações sobre instalação, se necessário for, e configuração das aplicações, podem consultar os seguintes sítios, em inglês: http://www.lampware.org/, http://www.mysql-apache-php.com/. No caso de o leitor querer saber como se procede para instalar manualmente todo esse software, poderá ler este pequeno tutorial sobre a instalação do PHP (não incluído no curso).

O uso de um editor PHP com realce de sintaxe será importante para a sua aprendizagem; há vários deles disponíveis gratuitamente na Internet. Para Linux, há muitos editores que suportam realce de sintaxe, por exemplo, o Kate, para usuários do KDE; o Vim, feito originalmente para o terminal, mas que agora conta com versões gráficas também. No MacOS o Taco é radicalmente a melhor opção.

No Windows, o PHP Editor é uma boa opção, porque já traz o Manual do PHP incluído, um mini-servidor Web e um interpretador de códigos PHP. No entanto o programa não é atualizado há mais de 3 anos, portanto não suportará os recursos introduzidos nas versões mais modernas do PHP. Mas também há vários editores oriundos do Linux que foram portados para o Windows, por exemplo o Vim. Para Windows, também temos o EasyEclipse for PHP, que auxilia na codificação, apresentando alguns tópicos da documentação do PHP, e autocomplete de códigos orientados a objetos.

Estrutura e método de estudo[editar | editar código-fonte]

Como já referido, este curso usa o método Padrão Eficaz como forma de aprendizagem, onde, em qualquer passo do estudo, será imprescindível a cópia de todos os exemplos existentes neste livro. Modifique-os à vontade sem medo de errar, e corra-os no seu servidor.

Capítulo 1 - Conhecendo a linguagem[editar | editar código-fonte]

PHP quer dizer PHP: Hypertext Preprocessor (PHP: Processador de Hipertexto). Esta linguagem nasceu pela mão de Rasmus Lerdof em 1994, como um CGI escrito em Linguagem C que inicialmente interpretava muito facilmente formulários. A primeira designação dada foi de FI (Form Interpreter) porém, devido à criação de inúmeras funções pela comunidade [PHP Team] que se ia desenvolvendo pela internet, a linguagem teve que, em 1997, ser redenominada como PHP.

Utilização[editar | editar código-fonte]

O PHP é uma das mais abrangentes ferramentas que o homem possui atualmente. Por ser uma linguagem server-side, ou seja roda direto do servidor e só mostra ao usuário o resultado já processado, o PHP tem poder semelhante ao famoso Perl. É possível a criação de uma grande variedade de coisas com o PHP, tendo em vista que esta é uma linguagem que podemos definir como inteligente, pois se não existir uma classe para uma determinada função podemos criá-la. Porém, ferramentas que rodam do lado do cliente como a abertura de um pop-up, uma animação de serpentinas exibidas na tela ou um slideshow de imagens não podem ser criados por esta linguagem. Se procura uma boa linguagem para criar esse tipo de ferramentas procure o Javascript. É por isso que se diz que o PHP e o Javascript são linguagens que se complementam!

  • Conheça um pouco mais sobre PHP visitando este site.


Nuvola apps konsole.png

Esta página é um esboço de informática. Ampliando-a você ajudará a melhorar o Wikilivros.

Em Windows[editar | editar código-fonte]

Download dos itens necessários[editar | editar código-fonte]

Primeiro, faça o download dos programas a serem usados.

  • Apache. No nosso exemplo, utilizamos o Apache 2.2.9.
  • MySQL. No nosso exemplo, utilizamos o MySQL 5.0.51a.
  • PHP. No nosso exemplo, utilizamos o PHP 5.2.6.

Instalação[editar | editar código-fonte]

  • Execute a instalação do Apache e instale-o com as configurações padrão. Se quiser, pode escolher outro diretório para a instalação.
  • Extraia o MySQL em uma pasta qualquer. Recomendo dentro da pasta onde você instalou o Apache. Ex: C:\Arquivos de Programas\Apache Group\Apache\mysql.
  • Extraia o PHP 5 na pasta C:\php5.

Obs.:

  • Existe o arquivo de instalação do PHP (*.msi), porém, o pacote compactado já vem pré-configurado para que rode mais rápido na máquina na qual está sendo executado.
  • É possível descompactar os arquivos do PHP em outro endereço. Por exemplo: C:\Arquivos de programas\PHP5, porém é necessário informar a mudança de endereço ao Apache.

Para maiores detalhes, consulte a seção de configuração do Apache logo abaixo.

Configuração do PHP[editar | editar código-fonte]

Na pasta aonde se encontra o PHP5, copie os arquivos php5ts.dll e libmysql.dll para a seguinte pasta, de acordo com o seu Windows:

  • Em Windows 9x/Me: C:\windows\system;
  • em Windows XP: C:\windows\system32;
  • para Windows NT/2000: C:\winnt\system32.

O arquivo libmysql.dll é necessário para o funcionamento do MySQL no PHP.

Abra o arquivo php.ini edite a linha extension_dir = "./" alterando-a para extension_dir = "c:/php5/ext/"C:/php5/ext/ é o diretório aonde ficam as extensões do PHP (MySQL, Curl, GD, etc).

Caso não encontre o arquivophp.ini no diretório do PHP5, renomeie o arquivo php.ini-dist para php.ini. Agora, localize a linha ;extension=php_mysql.dll e tire o ponto e vírgula ; de seu início.

Se quiser também, já aproveite e faça o mesmo na linha ;extension=php_gd2.dll, caso queira a biblioteca GD para a manipulação de imagens.

Salve as alterações e mova o arquivo o php.ini para a pasta:

  • C:\windows (em Windows 9x/Me/XP);
  • C:\winnt (para Windows NT/2000).

Configuração do Apache[editar | editar código-fonte]

Acrescente no final do arquivo httpd.conf no endereço C:\Arquivos de programas\Apache Software Foundation\Apache2.2\conf (por exemplo) as seguintes linhas:

PHPIniDir C:\Arquivos de programas\PHP5\

Este endereço é onde se encontram os arquivos PHP.

LoadModule php5_module C:\Arquivos de programas\PHP5\php5apache2_2.dll

Este endereço é aonde se encontra o arquivo referente a versão do apache, dentro da pasta PHP.

Ainda no endereço C:\Arquivos de programas\Apache Software Foundation\Apache2.2\conf abra o arquivo mime.types (utilize o bloco de notas mesmo ou outro editor de texto disponível) e acrescente as seguintes linhas:

application/x-httpd-php php
application/x-httpd-php-source phps

Configuração do MySQL[editar | editar código-fonte]

Não há nada para se configurar no MySQL, apenas devemos iniciá-lo caso não tenha sido instalado como serviço (só é possível no Windows NT/2000/XP). Vá para a pasta na qual foi instalado o MySQL e na pasta bin execute o arquivo mysqld.exe, iniciando o servidor do MySQL. Lembre-se: dessa maneira teremos que iniciar o MySQL sempre. Se não quisermos ir até a pasta toda vez que iniciarmos o computador, devemos criar um atalho para o arquivo mysqld.exe na pasta Inicializar/Iniciar (dependendo da versão do Windows) do Menu Iniciar.

Falta pouco![editar | editar código-fonte]

Vamos até Arquivo|Iniciar/Programas/Apache HTTP Server/Control Apache Server/Restart para reinicializar o Apache com as alterações feitas. Pronto! Agora temos PHP5 + MySQL + Apache no Windows!

Para efetuar um teste, criaremos um arquivo chamado phpinfo.php, com o conteúdo:

<?php
phpinfo();
?>

Colocaremos ele na pasta htdocs dentro da pasta do Apache. Abra seu navegador e digite http://localhost/phpinfo.php . Se a página abrir com as informações do PHP, significa que tudo deu certo.

Obs.: Lembrando que nos caminhos que foram mostrados, o C:\ deve ser substituído pela unidade na qual está seu Windows e que também é aonde estão instalados os programas. Utilizamos a unidade C:\ no artigo pois é a letra que é normalmente utilizada.

Caso queira usar register_globals no PHP, abra o arquivo php.ini no endereço C:\windows\ e localize a linha register_globals = Off e troque Off por On. Saiba mais neste endereço: http://www.php.net/manual/pt_BR/security.registerglobals.php

Em Linux[editar | editar código-fonte]

Ver instruções em inglês: Setup and Installation (Linux)

Definir o início e o fim do código PHP[editar | editar código-fonte]

Para que o interpretador PHP reconheça o código que deverá analizar é necessário delimitá-lo por tags. Existem três tipo de tags de iniciação e finalização de código: <?php e ?>, <? e ?> e <script language="php"> e </script>. A primeira é usada por omissão, estando sempre disponível. O segundo tipo não é aconselhável uma vez que, por ser uma short-tag (bem à maneira do ASP), poderá não estar ativada no ficheiro de configuração do PHP. Neste caso qualquer utilizador poderá manipular essa ativação ou desativação da short-tags, logo, se o leitor criar um script para ser distribuído poderão surgir incompatibilidades com a máquina do utilizador final. O terceiro tipo foi criado apenas com o propósito de uniformizar as tags de scripting no HTML (como o uso no javascript), porém, por ser de digitação morosa, não é muito usada.

Programa Hello World.php:

<?php
echo "Olá mundo";
?>

ou (não recomendado):

<?
echo "Olá mundo";
?>

Para ter uma ideia gráfica sobre o que está a ser explicado, analise o primeiro exemplo:

<html>
 <head>
  <title>Meu primeiro script</title>
 </head>
 <body>
 <?php
   echo "Olá mundo";
 ?>
 </body>
</html>

A instrução echo(), como pôde analisar, exibe no navegador o texto que se encontra imediatamente a seguir a ele. Sobre echo() iremos falar mais tarde.

Gravar arquivos em php[editar | editar código-fonte]

Para que o interpretador reconheça uma página que contenha código php, qualquer arquivo em php deve ser gravado com a extensão .php em vez de .html .

Dependendo da configuração do apache (httpd.conf) poderão ser utilizadas as extensões .php3 ou derivações, o que é comumente encontrado em sistemas mais antigos, o número 3 representa a versão do php, hoje já não é mais feita esta distinção, mas não se assustem ao encontrar um arquivo com extensão php3.

Por exemplo index.php e não index.html. Se for usada a extensão .html o servidor não irá reconhecer e executar o código. E consequentemente irá mostrar o código que você escreveu e não o resultado que o código deveria gerar.

Usar o ponto e vírgula no final de cada comando[editar | editar código-fonte]

Após qualquer instrução, é necessário o uso de um ; para que o interpretador reconheça que determinada instrução acaba aí. Após ; o interpretador processa a instrução, exibindo-a na memória do computador e, se não houver erros, passa para a próxima instrução.

Exemplo:

<?php
   echo "Olá como estás?";
   echo "Tudo bem contigo?";
?>

ou

<?php echo "Olá como estás?"; echo "Tudo bem contigo?" ?>

Notem que nesse segundo caso foi retirado a quebra de linhas porque o ponto e vírgula ; é que delimita o comando. E foi retirado o ponto e vírgula ; do último comando porque logo após é fechada a tag do php, não é uma boa prática, porém funciona.

<?php echo "Se não usar ponto e vírgula (;) o interpretador irá exibir um erro"; ?>

Obs.: Repare bem que o uso de ; no meio texto a ser exibido não afeta a instrução. Comentários são tudo aquilo que descrevemos no PHP, sem que o interpretador as varre. O Leitor pode escrever tudo o que quiser dentro dos comentários sem se importar com o tamanho ou o conteúdo escrito.

Como o PHP é baseado no C e no C++, ele suporta a sintaxe de comentários das duas linguagens, veja baixo.

Com /* comentário */:

<?php
/* Isto é um comentário
   de várias linhas no PHP */
echo "Comentário acima!";
?>

Com //comentário:

<?php
echo "Outro comentário!"; //Comentário de um linha só
?>

Existe também outro tipo de comentário, igual ao usado no shell do Unix:

# comentário de linha única proveniente do shell

Mas não é recomendado usar este último, pois será descontinuado em versões futuras do PHP. A função echo é a instrução que envia para a saída qualquer informação, podendo conter texto, números ou variáveis.

Deixemos os exemplos com variáveis para quando entendermos o uso das variáveis nos capítulos subsequentes.

Exemplo de uso do echo:

<?php
echo "Olá, tenho ";
echo 22;
echo " anos.";
?>

Podemos abreviar essa escrita concatenando os três parâmetros que fornecemos pelo operador . (ponto, concatenador de strings):

<?php
echo "Olá, tenho 22 anos.";
?>

Nos dois exemplos acima o resultado obtido é o mesmo.

Formatação do texto[editar | editar código-fonte]

As strings passadas para a instrução echo também podem conter formatações de texto em HTML, já que, na maioria dos casos, o PHP é usado para produzir saída em HTML. Por exemplo:

<?php
echo "<h2> Título em h2 </h2>";
echo "<h3> título em h3 </h3>";
echo "<i>Em itálico</i>";
echo "<b>Em negrito</b>";
echo "<strong>Em negrito</strong>";
?>

Usando as aspas[editar | editar código-fonte]

Para poder usar as aspas numa frase estas deverão ser precedidas por \ (barra invertida).

<?php
echo "Na frase a seguir o nome xpto virá dentro de aspas: ";
echo "O personagem que eu mais gosto é o \"xpto\", sem dúvida";
?>

As aspas duplas " podem sempre ser substituídas por apóstrofos/aspas simples '. Ambas as formas estão corretas. No caso de usar os apóstrofos, deverá usar a expressão \' para escrever apóstrofos na tela. A principal diferença entre os dois tipos de aspas é que, com aspas duplas, certas sequências de caracteres são interpretadas de maneira especial. O comando PHP include é muito útil porque permite incluir dinamicamente o conteúdo de um ficheiro PHP dentro de outro.

Uma das utilizações mais simples é criar menus para um site que depois podem ser utilizados em outras páginas. No exemplo a seguir criaríamos um ficheiro chamado navegar.inc que poderia ser incluído em qualquer página do site.

Em cada ficheiro em que se quisesse incluir o ficheiro navegar.inc, escreveríamos:

<?php include("navegar.inc"); ?>

Poderiamos ter o menu do ficheiro navegar.inc em qualquer página. Bastava alterar o menu em navegar.inc para o alterar em qualquer página.

Obs.: Evite utilizar arquivos (ficheiros) em PHP que não terminem com a extensão PHP. Dizemos isso por motivos de segurança, já que, tendo a URL de um arquivo de extensão como .inc ou .class, o browser exibirá todo o seu conteúdo (código, senhas, usuários, etc), pois esse tipo de arquivo não é interpretado pelo servidor. Então devemos usar algo como pagina.inc.php ou pagina.class.php, etc. A palavra-chave if em português equivale ao se, já o else ao se não.

Se ocorrer a condição A, então o bloco de instruções abaixo de A é executado, se não (else), então o bloco de instruções abaixo de B é executado.

Veja abaixo como é a sintaxe.

if( condição ) //A
{ comando;
  ...
  comando; //Bloco de instruções A.
}
else //B
{ comando;
  ...
  comando; //Bloco de instruções B.
}

Exemplo:

$a=10;
$b=15;

if($a<$b)
echo "Variável A é menor que B";

else //Se não.
echo "Variável B é menor que A";

Exemplo de uso do if e else:

$x=3;
if ($x==2){
  echo "x vale 2";
} else if ($x==3){
  echo "x vale 3";
}else{
  echo "x é diferente de 2 e de 3";
}

Lembrando que no if, para testar o valor de uma variável, usamos == e não apenas =.

Variáveis:

  • Começam sempre pelo símbolo $ seguido de uma letra.
  • Podem conter símbolos numéricos (0 - 9) alfanuméricos minúsculos (a - z) e alfanuméricos maiúsculos.
  • Não podem conter espaços! Se tiverem mais do que uma palavra deverão ser interligadas por um underscore _.

Por exemplo: $total_variavel.

Alguns exemplos de variáveis[editar | editar código-fonte]

<?php
$minha_variavel=4;
$minha_string="super ";
echo "$minha_string "." $minha_variavel";
?>

O ponto . após a variável $minha_string concatena as variáveis.

Deverá escrever na tela do navegador: super 4.

Tipos[editar | editar código-fonte]

O PHP suporta todos os oito tipos primitivos.

Boolean[editar | editar código-fonte]

O boolean é um valor lógico que pode assumir ou true ou false.

Neste exemplo o valor booleano é nos dado a conhecer pela função gettype():

<?php
echo gettype((bool) "");     // bool(false)
echo gettype((bool) 1);      // bool(true)
echo gettype((bool) "foo");  // bool(true)
?>

Aqui apresentamos duas variáveis com valores lógicos:

<?php
$foo = TRUE;
$foo = FALSE;
?>

Como podemos ver no exemplo acima, uma expressão tem um valor booleano true se ela contiver alguma coisa, e false se o seu conteúdo for nulo.

Inteiros[editar | editar código-fonte]

Um inteiro é um número do conjunto Z = { ...,-3,-2,-1,0,1,2,3,... }. Pode-se especificar através de notação decimal (de base 10), hexadecimal (base 16) ou octal (base 8), opcionalmente precedido de sinal (- ou +).

Representação de inteiros:

<?php
$a = 1234; # número decimal
$a = -123; # número negativo
$a = 0123; # número octal - precedido de um 0 - equivalente a 83 em decimal
$a = 0X1A; # número hexadecimal - precedido de um 0 e um X - equivalente a 26 em decimal
?>

Se você especifica um inteiro além dos limites de um inteiro, o PHP o interpreta como um ponto flutuante, veja abaixo.

<?php
$num = 2147483647;
var_dump($num);     // Saída: int(2147483647)
?>

Ou:

<?php
$num = 2147483648;
var_dump($num);     // Saída: float(2147483648)
?>

É necessário ter em atenção que na saída de uma fração para um inteiro', os arredondamentos não seguem a regra matemática, sendo assim é necessário o uso da função round():

<?php
var_dump(25/7);         //float(3.5714285714286)
var_dump((int) 25/7);   //int(3)
var_dump(round(25/7));  //float(4)
?>

Evite transformar uma fração de valor desconhecido para inteiro.

Números de ponto flutuante[editar | editar código-fonte]

Os números de ponto flutuante (floats e doubles) são números com casas decimais, onde, aqui, a vírgula é substituída por um ponto:

<?php
$a = 1.234;
$b = 1.3e4;
$c = 25.4E-10;
?>

Aqui também é necessário ter em atenção os arredondamentos.

Strings[editar | editar código-fonte]

Uma string é uma série de caracteres sem limites de comprimento. Ela é delimitada, no PHP, por Aspas, apóstrofo ou pela nova sintaxe heredoc:

<?php
echo 'string delimitada por apóstrofos!';
echo "string delimitada por Aspas";
echo <<<EOF
String delimitada por um heredoc
EOF;
?>

A inclusão de variáveis funciona aqui de várias maneiras. Vamos ver:

<?php
$carro = "Mercedes";
echo "Ele comprou um bonito $carro";     // funciona
echo "Eles compraram vários {$carro}s";  // funciona
echo "Eu faço um ${carro}";              // funciona
?>

As saídas serão:

  • Ele comprou um bonito Mercedes
  • Eles compraram vários Mercedess
  • Eu faço um Mercedes

Podemos também modificar strings:

<?php
$str = "Olha que alí há mal";   // Apresenta "Olha que alí há mal"
$str{strlen($str)-1} = "r";     // Apresenta "Olha que alí á mar"
?>

Ou:

<?php
$str = "Pegue isto";        // Apresenta "Pegue isto"
$str{strlen($str)-10} = "S";  // Apresenta "Segue isto"
?>

Cabe à função strlen() essa tarefa.

A função strlen(): retorna o tamanho de uma String.

Arrays[editar | editar código-fonte]

Um array é um mapa ordenado, com chaves e valores.

Exemplo:

<?php
$arr = array(1 => "um", 2 => "dois", 3 => TRUE);
echo $arr[1];  // Imprime "um"
echo $arr[3];  // Imprime "TRUE"
?>

Aqui nos é apresentado 3 chaves (1, 2 e 3) e 3 valores ("um", "dois" e TRUE).

Então podemos pegar uma chave de um array para imprimirmos o valor correspondente. Podemos também definir um array como vários array:

<?php
$arr = array("versão" => array ("beta"    => "0.5x",
                                "alpha"   => "0.1x",
                                "release" => "0.8x",
                                "final"   => "1.x"
                                ),
             "nome" => "PHP software",
             "SO" => array("win" => "Windows",
                           "lin" => "Linux",
                           "mac" => "MacOS"
                           )
             );

// Vamos agora remover um elemento do array, visto que o nosso software já passou a fase alpha
unset($arr["versão"]["alpha"]);

// Também podemos apagar o array inteiro. Já não vamos disponibilizar o nosso software
unset($arr);
?>

Podemos especificar apenas valores num array, sendo que o interpretador irá tornar cada um dos valores com uma chave a partir do zero.

<?php
$arr = array(1,45,23,68);
echo $arr[1]; // imprime 45

// Vamos agora apagar um valor e reindexar o nosso array:
unset($arr[1]);
$arr = array_values($arr);
// Não podemos imprimir o nosso array através de echo. Temos que fazer isso com print_r():
print_r($arr);
?>

Manipulação de Tipos[editar | editar código-fonte]

No PHP não é necessário definir o tipo que queremos usar, ou seja, este é determinado pelo contexto em que é usado. Por exemplo, $var = "string" é uma string, já $var = 12, é um inteiro.

Para alternarmos entre os tipos usamos uma sintaxe de moldagens:

<?php
$foo = 5;                  // $foo é um inteiro
$bar = (boolean) $foo;     // $bar é um boleano
?>

Moldagens permitidas:

  • int ou integer: moldar para inteiro.
  • bool ou boolean: moldar para booleano.
  • float, double ou real: moldar para número de ponto flutuante.
  • string: moldar para string.
  • array: moldar para array.
  • object: moldar para objeto.

Exemplos de moldes:

<?php
$str = "Eu sou string";
$int = 12;
$num = 25/85;

$a = (boolean) $str;
$b = (string) $int;
$c = (int) $num;

echo $a . $b . $c;
?>

Variáveis[editar | editar código-fonte]

As variáveis são no PHP representadas por um $ seguido do nome a ela atribuído. É necessário ter em conta alguns cuidados quando criamos variáveis:

<?php
$var = "Bom ";
$Var = "dia!";
echo $var . $Var;   // Exibe "Bom dia!"

$25arrobas = "Ainda por cumprir!";   // INVÁLIDO - Nenhum nome de variável pode
começar por uma expressão numérica
$_25arrobas = "Quase na linha!";    // VÁLIDO - Nome começa por _
?>

É possível escrever-se qualquer um dos 8 tipo primitivos numa variável. As variáveis são usadas para se atribuir um valor e guardá-lo na memória do computador para execução posterior:

<?php
$var = "Ganhou um prêmio!";
$count = 3;
if ($count < 5){
  echo $var;
}
?>

O script acima exibirá "Ganhou um prêmio!" se o valor da variável $count for menor que 5.

Variáveis predefinidas[editar | editar código-fonte]

O PHP oferece variáveis predefinidas de informações vindas do servidor e do navegador, que podem ser usadas pelo programador. são as chamadas superglobais.

$GLOBALS[editar | editar código-fonte]

Contém referências para todas as variáveis que estão disponíveis dentro do script.

<?php
  print_r($GLOBALS);
?>

É possível fazer a referencia de um dos itens da variável GLOBALS:

<?php
  echo $GLOBALS["_SERVER"]["HTTP_HOST"];
?>

$_SERVER[editar | editar código-fonte]

Variáveis criadas pelo servidor web e relacionadas com o ambiente de execução.

Pode-se acessar os valores de _SERVER diretamente:

<?php
   echo $_SERVER["HTTP_USER_AGENT"];
?>

$_GET[editar | editar código-fonte]

Variáveis enviadas por script para o servidor via método HTTP GET. O que é enviado pelo formulário é mostrado na barra de endereço.

$_POST[editar | editar código-fonte]

Variáveis enviadas por script para o servidor via método HTTP POST. O que é enviado pelo formulário não é mostrado na barra de endereço do navegador.

$_COOKIE[editar | editar código-fonte]

Variáveis enviadas por script para o servidor via cookies HTTP.

$_FILES[editar | editar código-fonte]

Variáveis enviadas para o script com todas as informações relativas aos arquivos enviados via HTTP.

$_ENV[editar | editar código-fonte]

Variáveis disponíveis no script do ambiente em execução. Em Web é igual ao $_SERVER.

$_REQUEST[editar | editar código-fonte]

Possui todas as variáveis englobadas em $_GET, $_POST e $_COOKIE. Em desuso devido à demora na realização do script!

$_SESSION[editar | editar código-fonte]

Variáveis que estão diretamente relacionadas no registro da sessão no script. Uma string é uma cadeia de caracteres. Geralmente são frases, textos ou linhas de comando.

Algo importante que deve ser considerado é o seguinte: todas as strings devem ser declaradas entre aspas simples (') ou aspas duplas (").

Aspas simples e Aspas duplas[editar | editar código-fonte]

Existe uma diferença básica entre aspas simples e aspas duplas.

Com aspas simples, você têm uma string realmente como ela foi declarada, independente de qualquer caractere especial (com exceção do caractere de escape - \). Se você deseja inserir uma aspa simples dentro de uma string declarada com a mesma, deve, então, "escapa-la".

<?php

print 'Preciso beber um copo d\'água';

// Imprime: Preciso beber um copo d'água

?>

Aspas duplas são exatamente iguais as aspas simples, exceto no quesito da interpretação e da velocidade. As aspas duplas interpretam qualquer variável, matriz (quando estiver entre {}) e comandos de texto (\n (quebra de linha), \t (tabulação), \r (retorno de carro). Como o interpretador tem que percorrer toda a string em busca de variáveis, matriz e comandos de texto, a impressão de uma string declarada com aspas duplas pode ser um pouco mais demorada que a de aspas simples.

<?php

$variavel = 'uma frase';
print "Esta é $variavel bem simples";

// Imprime: Esta é uma frase bem simples

?>

Concatenando strings[editar | editar código-fonte]

A concatenação nada mais é do que a junção de duas ou mais strings. Isso pode se dar também com variáveis, matrizes, constantes e qualquer outro parâmetro que não puder ser passado (ou que talvez você não queira passar) dentro de uma string.

O operador de concatenação é o ponto (.).

<?php

print 'Estou concatenando '.'duas strings';

// Imprime: Estou concatenando duas strings

?>

Podemos também concatenar com variáveis.

<?php

$variavel = 'mar';
print 'O '.$variavel.' é azul';

// Imprime: O mar é azul

?>

Existem vários operadores usados no PHP.

Operadores aritméticos[editar | editar código-fonte]

Nome Exemplo Significado
Adição $a + $b Soma de $a e $b
Subtração $a - $b Diferença entre $a e $b
Multiplicação $a * $b Produto de $a e $b
Divisão $a / $b Quociente de $a por $b (divisão de ponto flutuante)
Módulo $a % $b Resto da divisão de $a por $b

Exemplo:

<?php
$a = 2;
$b = 15.5;
echo $a + $b;
?>

Operadores Bit-a-Bit[editar | editar código-fonte]

Os operadores Bit-a-Bit permitem a manipulação de bits específicos dentro das expressões.

Nome Exemplo Significado
AND $a & $b Os bits que estão ativos tanto em $a quanto em $b são ativados.
OR $b Os bits que estão ativos em $a ou em $b são ativados.
XOR $a ^ $b Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados.
NOT ~$a Os bits que estão ativos em $a não são ativados, e vice-versa.
Deslocamento à esquerda $a << $b Desloca os bits de $a $b passos para a esquerda (cada passo significa "multiplica por dois")
Deslocamento à direita $a >> $b Desloca os bits de $a $b passos para a direita (cada passo significa "divide por dois")

Exemplo:

<?php
echo 12 ^ 9;
echo "12" ^ "9";
echo "hallo" ^ "hello";
?>

Operadores de Comparação[editar | editar código-fonte]

Os Operadores de comparação permitem a comparação de dois valores.

Nome Exemplo Significado
Igual $a == $b Verdadeiro se $a é igual a $b
Idêntico $a === $b Verdadeiro se $a igual a $b e do mesmo tipo
Diferente $a != $b Verdadeiro se $a diferente de $b
Diferente $a <> $b Verdadeiro se $a diferente de $b
Não idêntico $a !== $b Verdadeiro se $a diferente de $b, ou não são do mesmo tipo
Menor que $a < $b Verdadeiro se $a menor que $b
Maior que $a > $b Verdadeiro se $a maior que $b
Menor ou igual $a <= $b Verdadeiro se $a menor ou igual a $b
Maior ou igual $a >= $b Verdadeiro se $a maior ou igual a $b

Exemplo:

<?php
$a = 5;
$b = 4;
if ($a > $b) {
  echo "$a é maior que $b";
}
?>

Funções no PHP ajudam muito no desenvolvimento de codigos, reaproveitar codigos é essencial para a produtividade em um sistema, mostro abaixo um exemplo simples para uma função de conectar ao banco de dados indiferente do banco, do usuario e senha que for usar.

<?php

function conectar($usuario, $senha, $banco){
$con = mysql_connect("localhost", $usuario, $senha) or die (mysql_error());
mysql_select_db($banco, $con)or die (mysql_error());
}
?>

para se chamar a função no mesmo arquivo apenas fazemos isso:

<?php
// função
//....
//
conectar("root", "******", "banco_dados");
?>

Para se chamar de outra classe utilizando Orientação a Objetos utilizamos dessa forma:

<?php
class Config{
  public function conectar($usuario, $senha, $banco){
    $con = mysql_connect("localhost", $usuario, $senha) or die (mysql_error());
    mysql_select_db($banco, $con)or die (mysql_error());
}
}
?>

Chamada para a classe externa:

<?php
include = 'Config.php';
$con = new Config();
$con->conectar("root", "******", "banco_dados");
?>

Prontinho, esse é um exemplo simples de como usar funcoes em PHP.

Capítulo 2 - Orientação a Objetos[editar | editar código-fonte]

Classes são tipos predeterminados que contém atributos e métodos.

Objetos[editar | editar código-fonte]

O objeto é o resultado da união entre uma estrutura de dados e todas as operações associadas a ela.

Inicialização de objetos[editar | editar código-fonte]

Para inicializar um objeto, você usa a instrução new, criando uma instancia do objeto em variável. Conforme a figura abaixo:

Sintaxe de como utilizar objetos em PHP:

<?php
class Primeira {
    function mostrar() {
        echo "mostrando na tela";
    }
}
$frase = new Primeira();
$frase->mostrar();
?>

Ver também[editar | editar código-fonte]


Nuvola apps konsole.png

Esta página é um esboço de informática. Ampliando-a você ajudará a melhorar o Wikilivros.

Anexos[editar | editar código-fonte]

Exercício 1: Analise de código[editar | editar código-fonte]

<html>
 <head><title>Exercício</title>
 </head>
 <body>
  <?php
    $str = array("morango", "vermelho" , "banana", "amarela");
	echo "O morango é ".$str["morango"]."<br>";
		$first = $str["banana"];
	echo "A banana é ".$first."<br>";

   // um exemplo de como isto vai ficar

   echo "O Morango é".$str["morango"]."<br>";
   $first = $str["banana"];
   $first(strlen($first)-1) = "a";
   echo "A banana é ".$first."<br>"; //Uma saída
   print($str);
   var_dump($str);
   ?>
 </body>
</html>
  1. Tente descobrir onde está o erro neste script.
  2. Os comentários existentes estão bem integrados (têm a sintaxe correta)?

Exercício 2: Perguntas de Verdadeiro e Falso[editar | editar código-fonte]

1 O PHP pode escrever scripts que rodem do lado do cliente?

Verdadeiro.
Falso.

2 Para correr PHP preciso de um servidor Web?

Verdadeiro.
Falso.

3 O uso de short-tags, tais como <? e ?> é mais benéfico do que as outras tags porque assim perco menos tempo a escrever o código.

Verdadeiro.
Falso.

4 O PHP é mantido por uma comunidade de programadores pela internet e está acessível a toda a gente.

Verdadeiro.
Falso.

5 O PHP é uma linguagem de programação compilada?

Verdadeiro.
Falso.


Exercício 3: Aplicação de conhecimentos[editar | editar código-fonte]

  1. Escreva um código que exiba a mensagem "Olá Mundo!" no navegador.
  2. Que instrução preciso de usar para exibir essa mensagem?
<?php
echo "Olá Mundo!";
?>

Exercício 4: Perguntas[editar | editar código-fonte]

  1. O php sempre reconhece os campos name do HTML como variáveis?
  2. O que faz este script?
<?php phpinfo(); ?>

Funções PHP de compressão, são funções para PHP utilizadas para a manipulação de certos tipos de arquivos compactados.

Bzip2[editar | editar código-fonte]

São funções PHP utilizadas para a manipulação de arquivos compactados do tipo Bzip2.

  • bzclose — Fecha um ponteiro de arquivo bzip2.
  • bzcompress — Comprime uma string em dados no formato bzip2.
  • bzdecompress — Descomprime dados no formato bzip2.
  • bzerrno — Retorna um número de erro do bzip2.
  • bzerror — Retorna o número e string de erro do bzip2 em um array.
  • bzerrstr — Retorna a string de erro do bzip2.
  • bzflush — Força a escrita de todos os dados que estão no buffer.
  • bzopen — Abre um arquivo comprimido com bzip2.
  • bzread — Leitura binary-safe de um arquivo bzip2.
  • bzwrite — Escrita binary-safe em um arquivo bzip2.

ZIP[editar | editar código-fonte]

São funções PHP utilizadas para a manipulação de arquivos compactados do tipo ZIP.

  • zip_close — Fecha um arquivo ZIP.
  • zip_entry_close — Fecha o arquivo que está aberto.
  • zip_entry_compressedsize — Recupera o tamanho compactado do arquivo que está dentro do arquivo ZIP.
  • zip_entry_compressionmethod — Recupera qual o método de compressão foi utilizado no arquivo.
  • zip_entry_filesize — Retorna o tamanho de um diretório de entrada.
  • zip_entry_name — Retorna o nome do arquivo.
  • zip_entry_open — Abre um arquivo do arquivo ZIP.
  • zip_entry_read — Lê de um arquivo aberto.
  • zip_open — Abre um arquivo ZIPado.
  • zip_read — Lê a próxima entrada em um arquivo ZIPado.
  • ZipArchive::addEmptyDir — Add a new directory.
  • ZipArchive::addFile — Adds a file to a ZIP archive from the given path.
  • ZipArchive::addFromString — Add a file to a ZIP archive using its contents.
  • ZipArchive::close — Close the active archive (opened or newly created).
  • ZipArchive::deleteIndex — delete an entry in the archive using its index.
  • ZipArchive::deleteName — delete an entry in the archive using its name.
  • ZipArchive::extractTo — Extract the archive contents.
  • ZipArchive::getArchiveComment — Returns the Zip archive comment.
  • ZipArchive::getCommentIndex — Returns the comment of an entry using the entry index.
  • ZipArchive::getCommentName — Returns the comment of an entry using the entry name.
  • ZipArchive::getFromIndex — Returns the entry contents using its index..
  • ZipArchive::getFromName — Returns the entry contents using its name..
  • ZipArchive::getNameIndex — Returns the name of an entry using its index.
  • ZipArchive::getStream — Get a file handler to the entry defined by its name (read only)..
  • ZipArchive::locateName — Returns the index of the entry in the archive.
  • ZipArchive::open — Open a ZIP file archive.
  • ZipArchive::renameIndex — Renames an entry defined by its index.
  • ZipArchive::renameName — Renames an entry defined by its name.
  • ZipArchive::setArchiveComment — Set the comment of a ZIP archive.
  • ZipArchive::setCommentIndex — Set the comment of an entry defined by its index.
  • ZipArchive::setCommentName — Set the comment of an entry defined by its name.
  • ZipArchive::statIndex — Get the details of an entry defined by its index..
  • ZipArchive::statName — Get the details of an entry defined by its name..
  • ZipArchive::unchangeAll — Undo all changes done in the archive..
  • ZipArchive::unchangeArchive — Revert all global changes done in the archive..
  • ZipArchive::unchangeIndex — Revert all changes done to an entry at the given index..
  • ZipArchive::unchangeName — Revert all changes done to an entry with the given name..

RAR[editar | editar código-fonte]

São funções PHP utilizadas para a manipulação de arquivos compactados do tipo RAR.

  • rar_close — Close Rar archive and free all resources.
  • rar_entry_get — Get entry object from the Rar archive.
  • rar_list — Get entries list from the Rar archive.
  • rar_open — Open Rar archive.
  • Rar::extract — Extract entry from the archive.
  • Rar::getAttr — Get attributes of the entry.
  • Rar::getCrc — Get CRC of the entry.
  • Rar::getFileTime — Get entry last modification time.
  • Rar::getHostOs — Get entry host OS.
  • Rar::getMethod — Get pack method of the entry.
  • Rar::getName — Get name of the entry.
  • Rar::getPackedSize — Get packed size of the entry.
  • Rar::getUnpackedSize — Get unpacked size of the entry.
  • Rar::getVersion — Get version of the archiver used to add the entry.

Fontes[editar | editar código-fonte]

Funções de Calendário são funções utilizadas para simplificar a conversão de diferentes formatos de calendários.

O padrão é baseado no formato Julian Day Count [1]. A contagem de dias nesse calendário começa em 1º de Janeiro de 4713 B.C.

Para converter um calendário para algum formato, você deve primeiro convertê-lo para esse formato e então converter para o calendário que deseja.

O formato de calendário Julian Day Count é muito diferente do Julian Calendar! [2]. Veja a referência para saber mais.

  • cal_days_in_month — Retorna o número de dias em um mês de um calendário e ano requisitado.
  • cal_from_jd — Converte à partir do Julian Day Count para um outro calendário suportado.
  • cal_info — Retorna informações sobre um calendário em particular.
  • cal_to_jd — Converte um calendário (suportado) para o calendário Julian Day Count.
  • easter_date — Retorna a data do sistema UNIX correspondente à meia-noite da Páscoa do ano especificado. Se nenhum ano tiver sido especificado, será assumido o ano atual.
  • easter_days — Obtém o número de dias entre 21 de Março e o dia da Páscoa em determinado ano.
  • FrenchToJD — Converte uma data do calendário Republicano da França para o calendário Julian Day Count.
  • GregorianToJD — Converte uma data gregoriana para o Julian Day Count.
  • JDDayOfWeek — Retorna o dia da semana.
  • JDMonthName — Retorna o nome de um mês.
  • JDToFrench — Converte do calendário Julian Day Count para o calendário Republicano Francês.
  • JDToGregorian — Converte uma data no formato Julian Day Count para o formato Gregoriano.
  • jdtojewish — Convete uma data do calendário Julian Day Count para o calendário Judaico.
  • JDToJulian — Converte uma data do calendário Julian Day Count para o calendário "Julian".
  • jdtounix — Converte do formato de dada Juliana para Unix timestamp.
  • JewishToJD — Converte uma data do calendário Judaico para o calendário Julian Day Count.
  • JulianToJD — Converte datas no formato "Julian" para o formato Julian Day Count.
  • unixtojd — Converte datas do sistema Unix para data Juliana.

Ligações externas[editar | editar código-fonte]

  1. Em astronomia, com aplicações na cronologia de acontecimentos históricos, a data juliana ou dia juliano é um método de contar os dias sequencialmente, começando em uma data arbitrária no passado. Ele foi proposto por Joseph Justus Scaliger.
  2. Para mais informações sobre o calendário Julian Day Count, visite » http://www.hermetic.ch/cal_stud/jdn.htm. Para mais informações sobre sistemas de calendários, visite: » http://www.fourmilab.ch/documents/calendar/. "Excerpts from this page are included in these instructions, and are in quotes" - fonte: lhttp://br.php.net/manual/pt_BR/intro.calendar.php
  3. lhttp://br.php.net/manual/pt_BR/intro.calendar.php
  4. Iniciativa: WeB sHp

Abaixo listo uma série de extensões do PHP, as quais serão mencionadas nesta coleção:

  • Funções de compressão de bzip2, rar e zip
  • Funções de Calendário
  • Funções de manipulação de PDF
  • Funções de crack
  • Família de funções ctype
  • Biblioteca de rotinas de cliente URL - CURL
  • Funções de pagamento Cybercash
  • Funções DBM
  • Camada de funções de abstração de banco de dados DBA
  • Funções de dBase
  • Funções dbx
  • Funções DOM XML
  • Funções EXIF
  • Funções FrontBase
  • Funções de formato de dados de formulários (Forms Data Format) FDF.
  • Funções de filePro
  • Funções de FTP
  • Funções da biblioteca de imagens GD
  • Funções de Gettext
  • Funções de HyperWave
  • Conversão de tabela de caracteres ICONV
  • Funções de Informix
  • Funções de manuseio de IIS
  • Funções de IMAP POP3 e NNTP
  • Funções de Ingres II
  • Funções de InterBase
  • Funções de Java
  • Funções de LDAP
  • Funções de Multi-Byte String
  • Funções de Mcrypt Encryption
  • Funções de Mhash
  • Funções de Mimetype
  • Funções de Ming para Flash
  • Funções de mSQL
  • Funções de MSSQL
  • Funções de MySQL
  • Funções de MySQLi
  • Funções de Oracle 8
  • Funções de OpenSSL
  • Funções de Oracle
  • Funções de sobrecarga de objetos
  • Funções de PDF
  • Funções de PostgreSQL
  • Funções de impressora
  • Funções de memória Compartilhada
  • Funções de get and walk de SNMP
  • Funções de SOAP
  • Funções de socket
  • Funções de Sybase
  • Funções de Tidy
  • Funções de Tokenizer
  • Funções de W32api
  • Funções de XML-RPC
  • Funções de XSLT
  • Funções do YAZ
  • Funções para Arquivos Zip
  • Funções de compressão de ZLib

Ligações externas[editar | editar código-fonte]

PHP ainda é uma linguagem com muitas deficiências no que diz respeito a segurança, diariamente notificações de atos de vandalismo provocado pelos "defacers" são expostas na mídia, e na maioria das vezes as brechas encontradas por esses criminosos para ter acesso restrito a determinada página se encontra no PHP.


Nuvola apps konsole.png

Esta página é um esboço de informática. Ampliando-a você ajudará a melhorar o Wikilivros.

Outras informações[editar | editar código-fonte]

Curso de PHP/Bibliografia

Os usuários citados abaixo contribuiram para o desenvolvimento deste trabalho. Estes dados foram obtidos em 16/12/2013.

Abacaxi, Albmont, AmiltonMartins, Atoj, Brunoy Anastasiya Seryozhenko, Bysheep, Cristovaopb, Daniel Souza, Dante Cardoso Pinto de Almeida, David0811, Edudobay, FlavioBenYaakov, Fmagrao, Gilsonilunardi, Guiwp, Helder.wiki, Helder.wiki.bot, Iltonbarbosa, JackPotte, Jorge Morais, Julio Soares, LeonardoG, LeonardoRob0t, Lightningspirit, Marcos Antônio Nunes de Moura, Master, MewRS, MGFE Júnior, OsvaldoGago, PatiBot, Raylton P. Sousa, Renatwo, Ribafs, SallesNeto BR, Tabatinga, Voz da Verdade.