Исходный код
<tr>
<td width="21"><a href="javascript:couleur(0);" onMouseOver="window.status='<?php echo __("noir")?>';return true;"><img name="cou0" src="<?php echo HTTP_CHAT?>images/noir-select.gif" width=21 height=21 border=0 alt=""></a></td>
<td width="21"><a href="javascript:couleur(1);" onMouseOver="window.status='<?php echo __("violet")?>';return true;"><img name="cou1" src="<?php echo HTTP_CHAT?>images/violet.gif" width=21 height=21 border=0 alt=""></a></td>
<td width="21"><a href="javascript:couleur(2);" onMouseOver="window.status='<?php echo __("bleu")?>';return true;"><img name="cou2" src="<?php echo HTTP_CHAT?>images/bleu.gif" width=21 height=21 border=0 alt=""></a></td>
<td width="21"><a href="javascript:couleur(3);" onMouseOver="window.status='<?php echo __("vert")?>';return true;"><img name="cou3" src="<?php echo HTTP_CHAT?>images/vert.gif" width=21 height=21 border=0 alt=""></a></td>
<td width="21"><a href="javascript:couleur(4);" onMouseOver="window.status='<?php echo __("rouge")?>';return true;"><img name="cou4" src="<?php echo HTTP_CHAT?>images/rouge.gif" width=21 height=21 border=0 alt=""></a></td>
<td width="21"><a href="javascript:couleur(5);" onMouseOver="window.status='<?php echo __("orange")?>';return true;"><img name="cou5" src="<?php echo HTTP_CHAT?>images/orange.gif" width=21 height=21 border=0 alt=""></a></td>
</tr>
Что не так в исходном коде
Повторяющиеся строки символов в исходном коде — это тоже дублирование реализации. В данном коде это реализация рендеринга кнопки для выбора цвета на веб-сайте.
Как можно улучшить исходный код
Когда встречается такая вот повторяющаяся регулярная структура, всегда нужно помнить: решением здесь может быть только цикл. Формирование элементов в цикле, а данные для изменяющихся мест элементов должны лежать в массиве.
Ещё имеет смысл рендеринг отдельного элемента поместить в отдельную функцию.
Кроме кнопки в целом здесь дублируется ещё одна реализация: получение пути картинки. Это самостоятельное знание, оно тоже должно быть извлечено в отдельную функцию.
const COULEURS = [
'noir:noir-select.gif',
'violet:violet.gif',
'bleu:bleu.gif',
'vert:vert.gif',
'rouge:rouge.gif',
'orange:orange.gif',
];
function RenderColorTd($couleur_numero, $couleur_donnees) {
list($couleur_nome, $couleur_image) = explode(':', $couleur_donnees);
$couleur_image_chemin = ImageChemin($couleur_image);
return"<td width=\"21\">
<a href=\"javascript:couleur($couleur_numero);\" onMouseOver=\"window.status='$couleur_nome';return true;\">
<img name=\"cou$couleur_numero\" src=\"$couleur_image_chemin\" width=21 height=21 border=0 alt=\"\">
</a>
</td>";
}
function ImageChemin($image) {
return HTTP_CHAT . "images/" . $image;
}
<tr><?php
foreach (COULEURS as $couleur_numero => $couleur_donnees) {
echo RenderColorTd($couleur_numero, $couleur_donnees);
}
?></tr>