Il y a déjà eu quelques réponses à cette question, mais j'aimerais ajouter mon grain de sel...
Ce code :
<?php
$test = '<?php echo "hello world!"; ?>';
echo $test;
?>
Produit un écran blanc dans le navigateur, mais si vous regardez la source, vous verrez cette sortie :
<?php echo "hello world!"; ?>
Cela est lié à la manière dont le navigateur rend votre code PHP. Les navigateurs ne sont pas conçus pour afficher du code PHP, mais plutôt des balises HTML. Si vous affichez le code en écho parce que vous testez ce qui va être écrit dans votre fichier, regardez la source pour vous assurer que ce qui est affiché correspond bien à ce que vous voulez écrire dans le fichier. Vous ne le verrez pas dans le navigateur lui-même parce qu'il ne sait pas comment restituer la balise ?php
sans parler de ce qu'il faut faire avec la balise echo
attribut.
En option, comme tout le monde l'a déjà dit, vous pouvez faire passer la chaîne par htmlspecialchars
si tout ce que vous voulez, c'est le rendre dans le navigateur sans avoir à afficher la source. Vous ne voudriez pas faire cela si vous l'écrivez dans le fichier, mais cela peut vous aider à déboguer votre sortie.
Une autre option serait d'exécuter votre script à partir de la ligne de commande. Il n'essaiera pas de rendre votre résultat et se contentera de le recracher mot pour mot.