Ich möchte Klammern in heredoc (in php) ausblenden, zum Beispiel,
$str = <<<EOD
hello <hello inside>
EOD;
aber wenn ich diese Zeichenfolge echo, erhalte ich nur "hallo" als Ausgabe
Ich möchte Klammern in heredoc (in php) ausblenden, zum Beispiel,
$str = <<<EOD
hello <hello inside>
EOD;
aber wenn ich diese Zeichenfolge echo, erhalte ich nur "hallo" als Ausgabe
Das hat eigentlich nichts mit PHP zu tun. Es ist Ihr Browser, der die <hello inside>
als Tag.
Ich fürchte, es gibt keine automatische Möglichkeit, dies in HTML-Elemente innerhalb von heredoc umzuwandeln; Sie müssten eine htmlspecialchars();
auf die gesamte Zeichenkette anwenden oder HTML-Entities verwenden:
$str = <<<EOD
hello <hello inside>
EOD;
Ich hätte dies einfach als Kommentar zu Pekkas Antwort hinterlassen, aber so kann man die Kommentare nicht formatieren. Sie können HEREDOC/NOWDOC-Blöcke immer wie Zeichenketten behandeln (solange nichts auf den abschließenden Bezeichner in dieser Zeile folgt), also ist dies vollkommen gültig:
$str = htmlentities(<<< EOD
hello <hello inside>
EOD
);
und ist gleichbedeutend mit:
$str = <<< EOD
hello <hello inside>
EOD;
$str = htmlentities($str);
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.