PHP-Code im String

visiondpc

Erfahrenes Mitglied
Hallo.

Ich brauche eine Funktion, die bei Bedarf eine PHP-Datei erzeugen kann. Jetzt frage ich mich ob es eine Funktion gibt, die es mir ermöglicht, den Code ohne die ständigen Backslashes wie im Beispiel zu schreiben. In der PHP-Doku hab ich dazu jetzt nichts gefunden.

<?php
$dokument = fopen("test.php", "w");
$teststring = "<?php\nfor(\$i=0;\$i<10;\$i++)\n{\n\techo \"testzahl\".\$i; \n} \n?>\n";
fwrite($dokument, $teststring);
fclose($dokument);
?>
 
Zuletzt bearbeitet:
es gibt ja 2 Arten von Anfürhungszeichen... in deinem fall währen SingleQuotes besser da hier die Variablen nicht durch den Interpreter laufen
so sieht das dann aus:

PHP:
<?php
$teststring = '
for($i=0;$i<10;$i++){
    echo "testzahl".$i;
}
?>';
 
Ich fürchte, dass du da nicht drumrum kommen wirst, aber zumindest die \n- und \t-Ausdrücke kannst du dir sparen, ebenso wie \" und \', wenn die Heredoc-Syntax verwendest, um einen mehrzeiligen String zu definieren:

Code:
 $dokument = fopen("test.php", "w");
 $teststring = <<<Beliebiger_Ausdruck
 <?php
for(\$i = 0; \$i < 10; \$i++)
{
echo "testzahl" . \$i;
}
?>
 Beliebiger_Ausdruck;
Wichtig an dieser Syntax ist, dass die letzte Zeile (also Beliebiger_Ausdruck) am Zeilenanfang steht. Dort darfst du also keine Leerzeichen und Tabulatoren verwenden, da er das String-Ende sonst nicht erkennt.

Für weitere Infos: http://www.dynamicwebpages.de/php/language.types.string.php#language.types.string.syntax.heredoc

Gruß
PhoenixLoe
 
Danke Euch beiden.
Das mit den SingleQuotes hatte ich auch zuerst überlegt, da wäre dann ja aber das Problem mit den Zeilenumbrüchen gewesen. Diese Heredoc-Geschichte hört sich gut an. Ich hab davon allerdings auch noch nie etwas gehört. Scheint aber auch nicht schwer zu sein. Danke.
 
Zurück