@@Rolf B
würde ich definitiv eine höhere Abstraktionsstufe und eine Lösung mit
<?= ?>
statt<?php echo ?>
empfehlen wollen:function html_attr($name, $value) { return $name . '="' . htmlspecialchars($value) . '"'; } <a <?=html_attr("href", $url)?>>
Nö, das gefällt mir gar nicht. PHP wird hier als Templatesprache eingesetzt. (Ich hätte vielleicht eher von „Template“ als von „Script“ sprechen sollen? Wenngleich in den ersten paar Zeilen E und V stattfinden; ab Zeile 44 ist es das A der EVA.)
In einem Template sollte dann soviel wie möglich in der Zielsprache (hier: HTML) stehen, d.h. das Attribut als solches da sein, nicht durch eine Funktion in der Templatesprache generiert werden.
In Smarty wäre es <a href="{$url|escape}">
In PHP als Templatesprache: <a href="<?= htmlSpecialChars($url) ?>">
Wenn auf die selbstgestrickte html()
-Funktion verzichten (wofür es sicher gute Gründe gibt), dann würde ich das vorziehen (mit Kurzschreibweise <?=
).
🖖 Живіть довго і процвітайте
„Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
— @Grantscheam auf Twitter