PHP online - IDE, editor, compilador, interpretador

RSS

Execute scripts PHP 8 online com um interpretador PHP de verdade compilado para WebAssembly. Ótimo para testar trechos de código, arrays e funções de string e JSON.

PHP 8 (php-wasm) · Roda no seu navegador, então seu código nunca chega aos nossos servidores.
main.phpPHP
Saída

            
        
Ctrl/⌘ + Enter para executar

Recursos do compilador PHP online (IDE, editor & interpretador)

Escreva, execute e teste código PHP online de graça. Esta página funciona como IDE, editor de código, compilador e interpretador PHP online, tudo em um: digite seu código, clique em Executar e veja a saída na hora. Tudo roda no seu navegador, sem nada para instalar e sem conta para criar.

  • Execute código na hora: PHP 8 (php-wasm), com saída em menos de um segundo após o primeiro carregamento.
  • Editor de código: realce de sintaxe, números de linha, correspondência de colchetes e fechamento automático de colchetes.
  • Erros claros: mensagens de erro e avisos aparecem no painel de saída, como apareceriam no seu próprio computador.
  • Tela cheia: Ctrl/⌘ + Shift + F, tamanho de fonte ajustável, layout lado a lado ou empilhado e painéis redimensionáveis.
  • Salvamento automático: seu código fica guardado no seu navegador; baixe-o como main.php ou copie-o com um clique.
  • Seguro para experimentar: um limite de tempo e um botão Parar encerram loops infinitos.
  • Privado: o runtime PHP roda no seu dispositivo, então seu código nunca é enviado.
  • Modo escuro e atalhos de teclado: Ctrl/⌘ + Enter executa o código.
  • Grátis: sem cadastro, sem limites de uso.

Aprenda outras linguagens de programação

Como usar o compilador PHP online

  1. Escreva ou cole um script PHP no editor. A tag de abertura <?php é opcional; se o seu código não tiver nenhuma tag PHP, ela é adicionada para você. Templates que misturam HTML e blocos <?php ... ?> também funcionam. Restaurar exemplo traz de volta o código inicial.
  2. Clique em Executar ou use Ctrl + Enter (⌘ + Enter no Mac).
  3. Tudo o que seu script produz com echo, print, printf ou var_dump aparece no painel Saída. Avisos e erros fatais ficam destacados.
  4. Escolha um limite de tempo de 5, 15 ou 60 segundos. Scripts que demoram mais são interrompidos automaticamente, e Parar encerra a execução na hora.

A primeira execução baixa o interpretador PHP, cerca de 12 MB. Seu navegador o guarda em cache, então as execuções seguintes começam bem mais rápido. Use Copiar ou main.php para guardar seu script.

O PHP roda localmente dentro do seu navegador, então seu código nunca é enviado nem armazenado em nossos servidores. O editor lembra seu último script no armazenamento local do navegador, e em nenhum outro lugar.

O que é compatível

O compilador usa o PHP 8 por meio do php-wasm, o interpretador PHP compilado para WebAssembly. Não é uma simulação; seu código é executado pelo próprio PHP.

  • Sintaxe do PHP 8: propriedades tipadas, union types, expressões match, argumentos nomeados, arrow functions (fn), o operador nullsafe (?->) e enums nos casos em que a versão incluída os aceita.
  • Funções básicas para strings (str_contains, sprintf, explode), arrays (array_map, usort, array_filter), matemática e datas.
  • JSON com json_encode e json_decode.
  • Expressões regulares com as funções preg_*.
  • Classes, interfaces, traits, closures, generators e exceções.

Limitações:

  • Sem extensões de rede: curl, sockets e requisições HTTP não estão disponíveis.
  • Sem servidor de banco de dados: não há MySQL nem PostgreSQL para se conectar. Para praticar SQL, use o compilador SQL online.
  • Sem contexto de servidor web: $_GET, $_POST, sessões e cookies não recebem dados reais de requisição, e a saída HTML é mostrada como texto, não renderizada.
  • Sem pacotes do Composer e sem entrada padrão.

Referência rápida de PHP

<?php
$prices = ['apple' => 1.20, 'bread' => 2.50, 'milk' => 0.99];

$expensive = array_filter($prices, fn($p) => $p > 1);
arsort($expensive);

foreach ($expensive as $item => $price) {
    printf("%-6s %5.2f\n", $item, $price);
}

$label = match (true) {
    count($prices) > 2 => 'big basket',
    default            => 'small basket',
};
echo $label, PHP_EOL;
echo json_encode($prices, JSON_PRETTY_PRINT), "\n";
TarefaSintaxe
Variável$name = "Ada";
Interpolação de string"Hello, {$name}!"
Array associativo$a = ['key' => 'value'];
Percorrer chaves e valoresforeach ($a as $k => $v) { }
Inspecionar um valorvar_dump($x); ou print_r($x);
Null coalescing$v = $a['x'] ?? 'default';

Dicas

  • Termine as linhas com "\n" ou PHP_EOL; o echo não adiciona uma quebra de linha sozinho.
  • Use print_r($array) para uma visão compacta de arrays aninhados, ou var_dump() quando também precisar de tipos e tamanhos.
  • Para um JSON legível, passe JSON_PRETTY_PRINT ou cole a saída no formatador de JSON para validá-la.
  • Cada execução inicia um interpretador novo, então variáveis e funções da execução anterior não são mantidas.
Dica: Está testando um padrão de preg_match? Monte e depure o padrão primeiro no testador de regex e depois cole-o entre os delimitadores, por exemplo '/^\d+$/'.

Perguntas frequentes

Preciso começar meu código com <?php?

Não. Se o script não tiver a tag <?php, ela é adicionada automaticamente. Você também pode escrever HTML com blocos <?php ... ?> embutidos, exatamente como em um arquivo .php em um servidor web.

Posso me conectar ao MySQL?

Não. O interpretador roda no seu navegador, sem acesso à rede nem servidor de banco de dados. Para praticar SQL, o compilador SQL oferece um banco SQLite de verdade no navegador.

Por que curl ou file_get_contents() com uma URL não funcionam?

As extensões de rede não estão incluídas nesta versão em WebAssembly, e os navegadores não permitem conexões de rede diretas a partir de um ambiente isolado como este.

Isso é o mesmo que executar PHP em um servidor?

Para recursos da linguagem e funções de string, array e JSON, sim: é o motor PHP de verdade. Qualquer coisa que dependa de um servidor web, de extensões ou da rede se comporta de outra forma.

Atualizado

Copiado para a área de transferência