Gunnar Bittersmann: PHP-Quelltext anzeigen

Beitrag lesen

@@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