# O que é o PHP e o que ele pode fazer?

# O que é o PHP?

O PHP (um acrônimo recursivo para PHP: Hypertext Preprocessor) é uma linguagem de script open source de uso geral, muito utilizada, e especialmente adequada para o desenvolvimento web e que pode ser embutida dentro do HTML.

Ótimo, mas o que isso significa? Por exemplo:

Exemplo #1 Um exemplo introdutório

    <!DOCTYPE html>
    <html>
        <head>
            <title>Exemplo</title>
        </head>
        <body>

            <?php
                echo "Olá, eu sou um script PHP!";
            ?>

        </body>
    </html>

Em vez de muitos comandos para mostrar HTML (como acontece com C ou Perl), as páginas PHP contém HTML em código mesclado que faz alguma coisa (neste caso, mostra Olá, eu sou um script PHP!). O código PHP é delimitado pelas instruções de processamento (tags) de início e fim `<?php` e `?>` que permitem entrar e sair do modo PHP.

O que distingue o PHP de algo como o JavaScript no lado do cliente é que o código é executado no servidor, gerando o HTML que é então enviado para o navegador. O navegador recebe os resultados da execução desse script, mas não sabe qual era o código fonte. Um servidor web pode até mesmo ser configurado para processar todos os seus arquivos HTML com o PHP, e assim não haverá como os usuários dizerem que o PHP está sendo usado.

A melhor coisa em usar o PHP é que ele é extremamente simples para um iniciante, mas oferece muitos recursos avançados para um programador profissional. Não tenha medo de ler a longa lista de recursos do PHP. Com o PHP, praticamente qualquer pessoa pode começar a trabalhar e escrever scripts simples imediatamente.

Apesar do desenvolvimento do PHP ser focado nos scripts do lado do servidor, muito mais pode ser feito com ele. Leia mais sobre isso na seção O que o PHP pode fazer?, ou vá diretamente para o tutorial introdutório para começar a aprender sobre programação para a web.

# O que o PHP pode fazer?

Qualquer coisa. O PHP é focado principalmente nos scripts do lado do servidor, portanto ele pode fazer qualquer coisa que qualquer outro programa CGI pode fazer, como coletar dados de formulários, gerar páginas com conteúdo dinâmico ou enviar e receber cookies. Mas o PHP pode fazer muito mais.

Existem duas áreas principais onde os scripts PHP são usados:

- Execução de script no servidor. Este é o mais amplamente usado e o principal campo de atuação do PHP. Três coisas são necessárias para fazer isso funcionar: o interpretador do PHP (CGI ou módulo do servidor), um servidor web e um navegador web. Todos esses podem ser executados em uma máquina local para apenas experimentar a programação com o PHP. Consulte a seção sobre instruções de instalação para mais informações.
- Execução de scripts na linha de comando. Um script PHP pode ser executado sem qualquer servidor ou navegador, apenas o interpretador PHP é necessário para ser usado desta forma. Esse tipo de uso é ideal para scripts normalmente executados usando o cron (em Unix ou macOS) ou o Agendador de Tarefas (no Windows). Esses scripts podem ser usados também para rotinas de processamento de texto simples. Veja a seção Utilizando o PHP em linha de comando para mais informações.

O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindo Linux, várias variantes do Unix (como HP-UX, Solaris e OpenBSD), Microsoft Windows, macOS, RISC OS e provavelmente outros. O PHP também tem suporte à maioria dos servidores web atualmente. Isso inclui o Apache, o IIS e muitos outros. E isso inclui qualquer servidor web que possa utilizar o binário FastCGI do PHP, como o lighttpd e o nginx. O PHP trabalha tanto como módulo quanto como um processador CGI.

Com o PHP, portanto, os desenvolvedores têm liberdade para escolher um sistema operacional e um servidor web. Além disso, podem escolher entre utilizar programação estruturada ou programação orientada a objeto (OOP), ou ainda uma mistura das duas.

O PHP não é limitado apenas a gerar HTML. As habilidades do PHP incluem gerar tipos de arquivos complexos, como imagens ou arquivos PDF, criptografar dados e enviar emails. Ele também pode gerar facilmente qualquer texto, como JSON ou XML. O PHP consegue gerar automaticamente esses arquivos, e gravá-los no sistema de arquivos, ao invés de apenas imprimir, possibilitando criar um cache no lado do servidor para conteúdo dinâmico.

Uma das características mais fortes e mais significativas do PHP é seu suporte a uma ampla variedade de banco de dados. Escrever uma página web consultando um banco de dados é incrivelmente simples usando uma das extensões específicas de banco de dados (por exemplo, mysql), ou usando uma camada de abstração como o PDO ou conectar a qualquer banco de dados que suporte o padrão "Open Database Connection" usando a extensão ODBC. Outros bancos de dados podem utilizar cURL ou sockets, como o CouchDB.

O PHP também tem suporte para comunicação com outros serviços utilizando protocolos como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (no Windows) e incontáveis outros. Ele pode também abrir soquetes brutos de rede e interagir usando qualquer outro protocolo. O PHP também suporta o intercâmbio de dados complexos WDDX entre virtualmente todas as linguagens de programação para web. Falando de interconexão, o PHP implementa a instanciação de objetos Java e os utiliza transparentemente como objetos PHP.

O PHP tem recursos úteis para processamento de texto, incluindo expressões regulares compatíveis com Perl (PCRE), e muitas outras extensões e ferramentas para analisar e acessar documentos XML. O PHP padroniza todas as extensões XML a partir da base sólida da libxml2, além de estender o conjunto de recursos adicionando suporte a SimpleXML, XMLReader e XMLWriter.

E existem muitas outras extensões interessantes, que são categorizadas tanto alfabeticamente quanto por categoria. E existem também as extensões PECL adicionais que podem, ou não, estar documentadas dentro do próprio manual do PHP, como a » XDebug.

Esta página não é suficiente para listar todos os recursos e benefícios que o PHP pode oferecer. Leia as seções sobre a instalação do PHP, e veja a parte de referência das funções para detalhes sobre as extensões mencionadas aqui.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open