PHP en ligne - IDE, éditeur, compilateur, interpréteur

Exécutez des scripts PHP 8 en ligne avec un véritable interpréteur PHP compilé en WebAssembly. Idéal pour tester des extraits de code, des tableaux et des fonctions de chaînes et JSON.

PHP 8 (php-wasm) · S'exécute dans votre navigateur : votre code n'atteint jamais nos serveurs.
main.phpPHP
Sortie

            
        
Ctrl/⌘ + Enter pour exécuter

Fonctionnalités du compilateur PHP en ligne (IDE, éditeur & interpréteur)

Écrivez, exécutez et testez du code PHP en ligne gratuitement. Cette page réunit un IDE PHP en ligne, un éditeur de code, un compilateur et un interpréteur : saisissez votre code, cliquez sur Exécuter et voyez le résultat immédiatement. Tout s'exécute dans votre navigateur, sans rien à installer ni compte à créer.

  • Exécution instantanée : PHP 8 (php-wasm), avec un résultat en moins d'une seconde après le premier chargement.
  • Éditeur de code : coloration syntaxique, numéros de ligne, correspondance et fermeture automatique des parenthèses.
  • Erreurs claires : les messages d'erreur et avertissements s'affichent dans le panneau de sortie, comme sur votre propre ordinateur.
  • Plein écran : Ctrl/⌘ + Shift + F, taille de police réglable, disposition côte à côte ou empilée et panneaux redimensionnables.
  • Enregistrement automatique : votre code est conservé dans votre navigateur ; téléchargez-le sous main.php ou copiez-le en un clic.
  • Expérimentez sans risque : une limite de temps et un bouton Arrêter interrompent les boucles infinies.
  • Confidentiel : l'environnement d'exécution PHP tourne sur votre appareil : votre code n'est jamais envoyé.
  • Mode sombre et raccourcis clavier : Ctrl/⌘ + Enter exécute le code.
  • Gratuit : sans inscription, sans limite d'utilisation.

Découvrez d'autres langages de programmation

Comment utiliser le compilateur PHP en ligne

  1. Écrivez ou collez un script PHP dans l'éditeur. La balise ouvrante <?php est facultative ; si votre code ne contient aucune balise PHP, elle est ajoutée pour vous. Les gabarits qui mélangent du HTML et des blocs <?php ... ?> fonctionnent aussi. Réinitialiser l'exemple restaure le code de départ.
  2. Appuyez sur Exécuter ou utilisez Ctrl + Entrée (⌘ + Entrée sur Mac).
  3. Tout ce que votre script produit avec echo, print, printf ou var_dump apparaît dans le panneau Sortie. Les avertissements et les erreurs fatales sont mis en évidence.
  4. Choisissez une limite de temps de 5, 15 ou 60 secondes. Les scripts qui durent plus longtemps sont arrêtés automatiquement, et Arrêter met fin à une exécution immédiatement.

La première exécution télécharge l'interpréteur PHP, environ 12 Mo. Votre navigateur le met en cache : les exécutions suivantes démarrent donc beaucoup plus vite. Utilisez Copier ou main.php pour conserver votre script.

PHP s'exécute localement dans votre navigateur : votre code n'est donc jamais envoyé ni stocké sur nos serveurs. L'éditeur mémorise votre dernier script dans le stockage local de votre navigateur, et nulle part ailleurs.

Ce qui est pris en charge

Le compilateur utilise PHP 8 via php-wasm, l'interpréteur PHP compilé en WebAssembly. Ce n'est pas une simulation : votre code est exécuté par PHP lui-même.

  • Syntaxe de PHP 8 : propriétés typées, types union, expressions match, arguments nommés, fonctions fléchées (fn), opérateur nullsafe (?->) et enums lorsque la version fournie les prend en charge.
  • Fonctions de base pour les chaînes (str_contains, sprintf, explode), les tableaux (array_map, usort, array_filter), les mathématiques et les dates.
  • JSON avec json_encode et json_decode.
  • Expressions régulières avec les fonctions preg_*.
  • Classes, interfaces, traits, fermetures, générateurs et exceptions.

Limites :

  • Pas d'extensions réseau : curl, les sockets et les requêtes HTTP ne sont pas disponibles.
  • Pas de serveur de base de données : il n'y a ni MySQL ni PostgreSQL auxquels se connecter. Pour vous exercer au SQL, utilisez le compilateur SQL en ligne.
  • Pas de contexte de serveur web : $_GET, $_POST, les sessions et les cookies ne reçoivent pas de vraies données de requête, et la sortie HTML s'affiche sous forme de texte, sans rendu.
  • Pas de packages Composer, et pas d'entrée standard.

Aide-mémoire 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";
TâcheSyntaxe
Variable$name = "Ada";
Interpolation de chaîne"Hello, {$name}!"
Tableau associatif$a = ['key' => 'value'];
Parcourir clés et valeursforeach ($a as $k => $v) { }
Inspecter une valeurvar_dump($x); ou print_r($x);
Fusion de null$v = $a['x'] ?? 'default';

Conseils

  • Terminez les lignes par "\n" ou PHP_EOL ; echo n'ajoute pas de saut de ligne tout seul.
  • Utilisez print_r($array) pour un aperçu compact des tableaux imbriqués, ou var_dump() quand vous avez aussi besoin des types et des longueurs.
  • Pour un JSON lisible, passez JSON_PRETTY_PRINT, ou collez la sortie dans le formateur et validateur JSON pour la valider.
  • Chaque exécution démarre un interpréteur neuf : les variables et fonctions de l'exécution précédente ne sont donc pas conservées.
Astuce : vous testez un motif preg_match ? Construisez-le et déboguez-le d'abord dans le testeur de regex, puis collez-le entre les délimiteurs, par exemple '/^\d+$/'.

Foire aux questions

Dois-je commencer mon code par <?php ?

Non. Si le script ne contient aucune balise <?php, une balise est ajoutée automatiquement. Vous pouvez aussi écrire du HTML avec des blocs <?php ... ?> intégrés, exactement comme dans un fichier .php sur un serveur web.

Puis-je me connecter à MySQL ?

Non. L'interpréteur s'exécute dans votre navigateur, sans accès au réseau ni serveur de base de données. Pour vous entraîner au SQL, le compilateur SQL vous donne une vraie base SQLite dans le navigateur.

Pourquoi curl ou file_get_contents() avec une URL ne fonctionnent-ils pas ?

Les extensions réseau ne sont pas incluses dans cette version WebAssembly, et les navigateurs n'autorisent pas les connexions réseau brutes depuis un bac à sable comme celui-ci.

Est-ce équivalent à exécuter PHP sur un serveur ?

Pour les fonctionnalités du langage et les fonctions de chaînes, de tableaux et de JSON, oui : c'est le vrai moteur PHP. Tout ce qui dépend d'un serveur web, d'extensions ou du réseau se comporte différemment.

Mis à jour

Copié dans le presse-papiers