Der Kurs ist wirklich etwas unglücklich bzgl. des Kontext-Wechsel, da hat m.scatello schon recht.
Allerdings finde ich es schon schicker, wenn man sich bei HTML-Attributen auf die DoubleQuotes besinnt, auch wenn SingleQuotes erlaubt sind.
PHP kann ja auch beides und es ist daher nicht notwendig, zu escapen. Innerhalb von SingleQuotes werden zwar keine Variablen geparsed, aber ich finde die Konkatenation ehrlich gesagt sowieso viel übersichtlicher.
In Bezug auf das EVA-Prinzip, würde ich das - wenn ich das hier kurz posten darf - in etwa auf diese Weise vorbereiten:
PHP
<?php
$sHtmlTableRow =<<<EOHTML
<tr style="background-color:COLOR">
<td>ROWNR</td>
<td><a href="URL">URL</a></td>
<td>INFO</td>
</tr>;
EOHTML;
$aLines = file ( 'linksammlung.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
$aHtmlTableRows = array_map(
function($val, $key) use($sHtmlTableRow) {
list($url, $info) = explode( '|', $val );
$color = ( bcmod($key, 2) == 1 ) ? 'silver': '#7fffff';
return strtr(
$sHtmlTableRow
, [
'COLOR' => $color,
'ROWNR' => $index,
'URL' => $url,
'INFO' => $info
]
);
}
, $aLines
, array_keys( $aLines )
);
Alles anzeigen
Dann benötige ist der HTML-Part für den Kontext-Wechsel auf das Minimum runter gebrochen:
PHP
<h1>Linksammlung zu Fotografie</h1>
<table border="1">
<thead>
<tr>
<th>Nr</th>
<th>URL</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<?php
echo implode( $aHtmlTableRows );
?>
</tbody>
</table>
Alles anzeigen
Ist jetzt aber nur als Anregung gedacht...