2017-09-15 2 views
1

Ich versuche herauszufinden, wie ich die HEREDOC-Syntax verwenden kann, um Variablen zu interpretieren, aber den Backslash-Charakter zu ignorieren. Oder verwenden Sie die NOWDOC-Syntax, um die Interpretation von Variablen zu ermöglichen. Ein Beispiel dafür, was ich zu tun versucht:Variablen interpretieren, aber Escape-Sequenzen in PHP ignorieren HEREDOC

$title = "My title here"; 
$date = "Aug 12, 2017"; 

$latex_code = <<<LCODE 
    \documentclass{article} 

    \usepackage{graphicx} 

    \pagestyle{head} 
    \firstpageheader{ 
     $title 
     $date 
    } 
LCODE; 

file_put_contents("article.tex", $latex_code); 

Ich möchte alle Schrägstriche ignorieren, aber die Variablen $ title und $ date zu interpretieren. Gibt es eine Möglichkeit, dies zu tun, ohne einen HEREDOC- oder NOWDOC-Block zu verlassen?

+0

Können Sie entkommen? Was meinst du mit "ignorieren" den Backslash, eigentlich? Einfach wörtlich interpretieren oder überhaupt nicht einbeziehen? –

+0

Ich bin mir nicht sicher, dass 2 vars in geschweiften Klammern übersetzt werden. Schlagen Sie ein, dass die Umschläge mit einem eigenen Paar geschweifter Klammern übersetzt werden sollen. \ Firstpageheader {$ title} {$ date} LCODE; –

+0

@ Don't Panic Ich versuche, dies alles in eine Textdatei genau so zu exportieren, wie es ist, aber mit Variablen interpretiert. Ich habe meine Frage aktualisiert, um dies mit der Zeile file_put_contents anzuzeigen. – kojow7

Antwort

3

Auf die Gefahr der Missverständnisse der beabsichtigten Ausgabe, ich denke, Sie könnten nur die Backslashes entkommen. (Ich nehme an, Sie wollen, dass die einzelnen Schrägstriche in der Ausgabe enthalten.)

$title = "My title here"; 
$date = "Aug 12, 2017"; 

$latex_code = <<<LCODE 
    \\documentclass{article} 

    \\usepackage{graphicx} 

    \\pagestyle{head} 
    \\firstpageheader{ 
     $title 
     $date 
    } 
LCODE; 

Natürlich, wenn Sie das nicht tun, einige von ihnen (z \f) escape sequences sein werden, die interpretiert werden.