Ich frage mich, ob es eine Möglichkeit gab, eine automatische Variable Ersetzung innerhalb einer Zeichenfolge zu haben. Ich kann das jetzt mit preg_replace
und strtr
simulieren, bin mir aber nicht sicher, ob es einen besseren Weg gibt. Ich dachte daran, eval
zu verwenden, aber ich kann nicht herausfinden, wie man es richtig macht.php - automatische String Templating
strtr
<?php
$replacement = array('$test' => "dog");
$template = 'this is a $test';
$statement = strtr($template, $replacement);
echo $statement;
?>
preg_replace
<?php
$template = 'this is a $test';
$statement = preg_replace('/\$test/', 'dog', $template);
echo $statement;
?>
eval
Idee
<?php
$template = 'this is a $test';
$test = 'dog';
eval('$statement = "$template";');
echo $statement;
?>
Sie müssen sehr, sehr, sehr, sehr vorsichtig Ihre Zeichenfolge auf den höchsten Grad zu validieren, bevor 'eval()' verwenden. 'eval()' kann das Hacken Ihrer Seite für schlaue, ungezogene Leute viel einfacher machen. Es ist nicht gegen das Gesetz, 'eval()' zu verwenden, aber es wird oft aufgrund von Schwachstellen stark abgeraten. Ich würde Sie dringend bitten, 'eval()' Ihren Plan Z zu machen - nur zu verwenden, wenn alles andere nicht wie gewünscht funktioniert. – mickmackusa
Sind die anderen beiden Funktionen in bestimmten Situationen fehlerhaft? Sie scheinen eine klügere Wahl für diese Aufgabe zu sein. – mickmackusa
@mickmackusa Ich denke, es wird schneller, nicht sicher. 'eval' sollte sicher sein, da sie Variablen sind, die ich selbst definiere. Keine Benutzer/Client-seitige Eingabe. –